通过XMLHttpRequest调用了另一个页面。但被调用的页面无法返回JavaScript内容。
在下面的代码中,它没有返回5 + 7的添加。
经历了各种谷歌的东西,但似乎没有任何工作。
如果任何人都可以解决这个问题会很有帮助。request_xml.php
<!DOCTYPE html>
<html>
<body>
<p id="demo">Here</p>
<script>
window.onload = function() {
loadDoc();
};
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "call_page.php", true);
xhttp.send();
}
</script>
</body>
</html>
call_page.php
<!DOCTYPE html>
<html>
<body>
<p>why is js not working?</p>
<script>
document.write(5+7);
</script>
</body>
</html>
编辑:
直接加载页面时,JavaScript正在运行
此外,JS在 call_page.php
中进行onclick工作答案 0 :(得分:1)
浏览器在页面加载时加载JavaScript。但是在这里你用AJAX加载页面,AJAX只发出HTTP请求并返回服务器的响应。由于它从未被浏览器的渲染引擎加载,因此JavaScript无法加载。
您可以尝试将响应注入使用document.createElement
创建的虚拟元素,但大多数现代浏览器都不允许您执行这样的JavaScript。因此,最好的办法是找到另一个加载向量,或者将其他页面打开为弹出窗口或iframe。