我有这个 JavaScript:
<script>
if (str == "") {
document.getElementById("txtHint1").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint1").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "/npsmart/umts/action_plano/?q=" + query1, true);
xmlhttp.send();
}
</script>
此 JavaScript 调用一个名为 getuser.php
的页面。
这是getuser.php
的代码:
<!DOCTYPE html>
<html>
<body>
<p id="dumb"></p>
<script>
document.getElementById("dumb").innerHTML = "WORK";
</script>
</body>
</html>
我只想将名为“dumb”的段落内容更改为“WORK”。但是当我调用该页面并加载它时,我的段落内容保持为空。 就像我的 Ajax 调用请求不执行脚本标签。
编辑:
我已经用这个简单但巧妙的解决方案解决了我的问题:
function showUser() {
if(query_num == 2){
if (str == "") {
document.getElementById("txtHint1").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint1").innerHTML = this.responseText;
eval(document.getElementById("runscript").innerHTML);
}
};
xmlhttp.open("GET","/npsmart/umts/action_plano/?q="+55555,true);
xmlhttp.send();
}
在我的 getuser.php 文件中:
<script type="text/javascript" id="runscript">
document.getElementById("dumb").innerHTML = "WORK";
</script>
我刚刚将: eval(document.getElementById("runscript").innerHTML);
放入我的函数中,然后在 php 文件中使用以下命令调用此脚本:
<script type="text/javascript" id="runscript">
谢谢大家=)
希望这篇文章可以帮助其他人。
最佳答案
JS 不会从响应中嵌入的脚本自动执行。
由于getuser.php
是一个PHP脚本,因此不需要使用JS并让浏览器设置段落内容。使用 PHP 本身:
<!DOCTYPE html>
<html>
<body>
<p id="dumb"><?php echo 'WORK'; /* or anything else */ ?></p>
</body>
</html>
否则,您必须在返回的 AJAX 响应上使用 JS eval
以使浏览器运行从脚本返回的 JS。但我建议不要这样做。
关于javascript - 如何加载从 Ajax 请求调用的 php 文件中的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791782/