Why would PHP-generated Javascript not work in file loaded via AJAX?

有些话、适合烂在心里 提交于 2019-12-24 02:50:12

问题


I am loading a .php file via an ExtJS AJAX call like this:

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 in the loaded .php file executes fine:

<script type="text/javascript">
     regionContent.update('changed region content from within application view');
</script>

But if the Javascript is being generated via PHP, it is not executed:

<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view')';\n";
echo "</script>\n";
?>

Yes the responses are the same, as seen in the Firebug Net panel, here with Javascript which works:

And here with PHP-generated Javascript, which does not work:

How can I get the PHP-generated Javascript to execute?


回答1:


Those responses aren't the same. Check the '; versus ; at the end there.

<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view')';\n";
echo "</script>\n";
?>

Versus

<?php
echo "<script type=\"text/javascript\">\n";
echo "regionContent.update('changed region content from within application view');\n";
echo "</script>\n";
?>



回答2:


There's an extra quote in your PHP code, causing the quotes in Javascript to work incorrectly; instead of:

echo "regionContent.update('changed region content from within application view')';\n";

You need:

echo "regionContent.update('changed region content from within application view');\n";


来源:https://stackoverflow.com/questions/4335142/why-would-php-generated-javascript-not-work-in-file-loaded-via-ajax

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!