gpt4 book ai didi

javascript - 如何加载从 Ajax 请求调用的 php 文件中的脚本?

转载 作者:行者123 更新时间:2023-11-28 04:04:52 27 4
gpt4 key购买 nike

我有这个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com