Je veux charger les fichiers .php via ajax qui exécutent le script ExtJS lors de leur chargement, ce qui à son tour modifie les objets ExtJS existants déjà présents dans le DOM.Pourquoi javascript ne s'exécute-t-il pas dans un fichier .php chargé avec Ext.Ajax.Request?
Cependant, je ne peux même pas exécuter Javascript à partir d'une page en cours de chargement via Ext.Ajax.request
. Et aucune erreur n'apparaît dans le panneau Firebug Net. Le code PHP est exécuté, mais pas le Javascript. Lorsque j'appelle la page en cours de chargement dans le navigateur, elle exécute l'amende Javascript.
Comment puis-je exécuter Javascript dans les pages chargées avec Ext.Ajax.request?
Ext.onReady(function(){
var menuItemStart = new Ext.Panel({
id: 'panelStart',
title: 'Start',
html: 'This is the start menu item.',
cls:'menuItem'
});
var menuItemApplication = new Ext.Panel({
id: 'panelApplication',
title: 'Application',
html: 'this is the application page',
cls:'menuItem'
});
var regionMenu = new Ext.Panel({
region:'west',
split:true,
width: 210,
layout:'accordion',
layoutConfig:{
animate:true
},
items: [ menuItemStart, menuItemApplication ]
});
var regionContent = new Ext.Panel({
id: 'contentArea',
region: 'center',
padding:'10',
autoScroll: true,
html: 'this is the content'
});
new Ext.Viewport({
layout: 'border',
items: [ regionMenu, regionContent ]
});
menuItemStart.header.on('click', function() {
Ext.Ajax.request({
url: 'content/view_start.php',
success: function(objServerResponse) {
regionContent.update(objServerResponse.responseText);
}
});
});
menuItemApplication.header.on('click', function() {
Ext.Ajax.request({
url: 'content/view_application.php',
success: function(objServerResponse) {
regionContent.update(objServerResponse.responseText);
}
});
});
});
le fichier qui est en cours de chargement via Ajax:
<script type="text/javascript">
window.onload=function() {
alert('from application view'); //is not executed
}
//Ext.onReady(function(){
// alert('from application view extjs'); //is not executed
//}
</script>
<?php
echo 'this is the application view at ' . date('Y-m-d h:i:s');
?>
c'est comme ça que je l'avais à l'origine mais ça ne s'exécute pas non plus, pas d'erreurs dans le panneau Firebug Net, c'est comme si javascript est simplement ignoré, dois-je utiliser autre chose que responseText? mais responseBody ne fait même pas apparaître le contenu généré depuis PHP –
Essayez de consigner le responseText dans firebug avec console.log et vérifiez si la balise script est présente, car certaines bibliothèques suppriment simplement les balises de script pour des raisons de sécurité – mck89
oui il affiche la balise de script complète , Je le vois aussi dans le panneau net pour l'appel ajax view_application.php dans l'en-tête de réponse, le plein ' ...' est-il –