gpt4 book ai didi

javascript - 为什么 jquery 的 .load() 会忽略 <script>?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:21 26 4
gpt4 key购买 nike

我有一个每个公共(public)页面 a.html,如下所示:

<html>
<head>
<script type="text/javascript" src="xyz.js" > </script>
</head>
<body>
<div> ... </div>
</body>
</html>

在 b.html 中,我使用 jquery 的 .load()函数到 div .

$("#myDiv").load("a.html")  

它有效。 xyz.js 的内容与 a.html 一起加载。但是为什么没有 <script>标签?我打开 Firebug 查看源代码。有一个但没有一个<script> .

我想要 <script>因为我需要它来找到相对路径。(this question)

编辑:我尝试使用 .get().html() .没有帮助。

Edit2:标题不太合适。 xyz.js 运行。但是没有 <script> .

最佳答案

.load()函数有目的地去掉 <script>来自加载内容的标签。当你给它一个普通的 URL 来加载时,它会在加载内容并将其添加到 DOM 后执行脚本。但是,如果您使用在第一个参数中的 URL 之后添加选择器的技巧:

$('#foo').load("http://some.domain.com/blah #special-div");

然后它会剥离 <script>标记,但它执行它们。

为什么?我不知道。

现在,请注意从 <html> 加载整个页面将标签向下插入另一个页面的元素将导致某种 DOM 的弗兰肯斯坦怪物,如果浏览器会这样做的话。通常,当您使用“.load()”来抓取内容片段来更新页面时,您的服务器应该响应页面的一部分,而不是整个页面。 jQuery 允许在实际 URL 之后使用选择器,目的是让您去掉页面的一大块,这真的很酷,但它的缺点是在这种情况下不会执行脚本。

关于javascript - 为什么 jquery 的 .load() 会忽略 &lt;script&gt;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274362/

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