请在下面阅读我的情景...... 我有一个PHP文件,其中我有javascript ..
<?php
echo ‘<script>’;
echo ‘window.alert(“hi”)’;
echo ‘</script>’;
?>
直接执行此文件时,脚本内的内容按预期执行。但是如果通过另一个页面的ajax调用同一页面,则不会执行脚本部分。 你能告诉我可能的原因吗? (注意:我强迫在php页面中有脚本)。
答案 0 :(得分:1)
当您进行AJAX通话时,您只需抓取该页面中的内容即可。 JavaScript将其视为字符串(而不是代码)。您必须在AJAX回调中将页面中的内容添加到DOM中。
$.get('/alertscript.php', {}, function(results){
$("html").append(results);
});
确保更改代码以满足您的需求。我假设你使用jQuery ......
load('/alertscript.php', function(xhr) {
var result = xhr.responseText;
// Execute the code
eval( result );
});
function load(url, callback) {
var xhr;
if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else {
var versions = ["MSXML2.XmlHttp.5.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.2.0",
"Microsoft.XmlHttp"]
for(var i = 0, len = versions.length; i < len; i++) {
try {
xhr = new ActiveXObject(versions[i]);
break;
}
catch(e){}
} // end for
}
xhr.onreadystatechange = ensureReadiness;
function ensureReadiness() {
if(xhr.readyState < 4) {
return;
}
if(xhr.status !== 200) {
return;
}
// all is well
if(xhr.readyState === 4) {
callback(xhr);
}
}
xhr.open('GET', url, true);
xhr.send('');
}