Почему сгенерированный PHP Javascript не будет работать в файле, загруженном через AJAX?
Я загружаю файл .php
с помощью вызова AJAX ExtJS следующим образом:
menuItemApplication.header.on('click', function() {
Ext.Ajax.request({
url: 'content/view_application.php',
success: function(objServerResponse) {
var responseText = objServerResponse.responseText;
regionContent.update(responseText);
var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi;
while(scripts=scriptsFinder.exec(responseText)) {
eval(scripts[1]);
}
}
});
});
Javascript в загруженном файле .php выполняется нормально:
<script type="text/javascript">
regionContent.update('changed region content from within application view');
</script>
Но если Javascript генерируется с помощью PHP, он не выполняется:
<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view')';\n";
echo "</script>\n";
?>
Да, ответы те же, что и на панели Firebug Net, здесь с помощью Javascript, который работает:
И здесь с помощью PHP-сгенерированного Javascript, который не работа:
Как я могу заставить сгенерированный PHP Javascript выполняться?
2
Author: Edward Tanguay, 2010-12-02
2 answers
Эти ответы не совпадают. Проверьте '; против; в конце там.
<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view')';\n";
echo "</script>\n";
?>
Против
<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view');\n";
echo "</script>\n";
?>
4
Author: DampeS8N, 2010-12-02 12:52:16
В вашем PHP-коде есть дополнительная цитата, из-за которой кавычки в Javascript работают неправильно; вместо:
echo "regionContent.update('changed region content from within application view')';\n";
Вам нужно:
echo "regionContent.update('changed region content from within application view');\n";
2
Author: Byron Carasco, 2010-12-02 12:53:58