gpt4 book ai didi

javascript - AJAX 不会覆盖已经加载的脚本?

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

我使用的是 jquery-ui-widget 的一个版本,1.10.3,它适用于 ajax 加载的页面片段 #1,但如果片段#2 之后加载,则会触发页面片段#2 的错误/strong> 片段#1。

这很奇怪,因为即使我在 ajax 加载片段 #2 时尝试用 1.8.21 覆盖 1.10.3(是的,我意识到这是一个糟糕的 hack ),使用小部件工厂的代码仍会尝试使用 1.10.3,因此会导致错误。

请注意,这不是正常页面加载期间的问题,因为 1.8.21 在我的 ajax div id="ajax_content" 之外每次都会加载。

如何在 ajax 期间覆盖 1.10.3

<html>
<div id="ajax_content">
Page fragment #1 content
<script src="jquery-ui-widget.1.10.3.js"></script>
</div
<script src="jquery-ui-widget.1.8.21.js"></script>
</html>

对比

<html>
<div id="ajax_content">
Page fragment #2 content
<script src="jquery-ui-widget.1.8.21.js"></script>
//having this script here or not has no effect if 1.10.3 was already loaded
</div>
<script src="jquery-ui-widget.1.8.21.js"></script>
</html>

最佳答案

jquery-ui-widget 版本 不会有效果。相反,您的问题的原因是添加到您的 div id="ajax_content"innerHTML 的脚本将不会执行。

动态添加的脚本(可能作为 ajax 请求的响应接收或使用 js 或 jQuery 动态添加到 innerHTML)不执行。此外,根据@Kevin B 的评论,不推荐。我通过以下两种解决方案之一解决了同样的问题:

  1. 首先加载整个脚本
  2. 使用 head 标签中的脚本加载新页面

您可能不同意这里的第二个解决方案,说问题是关于作为 ajax 响应收到的脚本,而我建议您重新设计您的方法并改用单独的页面。由于各种原因,这可能不适合您的场景,但如果阻止您这样做的唯一原因是这会导致代码重复,那么您可以探索使用类似 jsp:include.

关于javascript - AJAX 不会覆盖已经加载的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20612505/

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