Почему сгенерированный 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, который работает:

alt text

И здесь с помощью PHP-сгенерированного Javascript, который не работа:

alt text

Как я могу заставить сгенерированный PHP Javascript выполняться?

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