gpt4 book ai didi

javascript - 执行源自 AJAX 加载的外部文件的脚本

转载 作者:行者123 更新时间:2023-12-03 00:55:28 25 4
gpt4 key购买 nike

这是一个与 AJAX 相关的非常常见的问题,但我似乎找不到适合我的情况的问题,因为大多数人都使用 jQuery 和其他原因。也许我的效率不高/不推荐,但无论如何,我们开始吧。

我有一个按钮[假设我们有一个对它的引用,名为 btn ].

它监听点击事件。当用户单击该按钮时,它会向主 HTML/CSS/JS 文件所在目录中的 .txt 文件发出 AJAX 请求。我们称之为test.txt .

现在,它更改了 <html>的innerHTML(不是head/body,而是html),innerHTML是AJAX请求的响应。

test.txt保存 HTML 代码。在该 HTML 代码中有 <script src="another-js-file.js"> 。这没有被执行,这就是问题所在。

在你对我尖叫之前INNERHTML 不执行任何脚本我知道这一点。我看到其他答案说创建 <script>标签位于另一个 div 内的 div 中,但它似乎不适用于外部 js 文件,并且解决方案确实使用了 innerHTML。

好的,这是一个草图:

 btn.onclick = function(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState = XMLHttpRequest.DONE){
document.documentElement.innerHTML = this.responseText;
}
}
xhr.open("GET", "./test.txt");
xhr.send();
}

哪里test.txt持有:

<head>
<title>Document</title>
<link rel="stylesheet" href="test.css">
<script src="another-js-file.js"></script>
</head>

<body>
<h1>Hello World!</h1>
</body>

没有 jQuery。

最佳答案

我发现通过创建一个脚本元素并将其源设置为“another-file.js”,如下所示:

var script = document.createElement("script");
script.src = "test.js";
document.body.appendChild(script);
THIS GOES AFTER document.documentElement.innerHTML = this.responseText;

关于javascript - 执行源自 AJAX 加载的外部文件的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861275/

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