【问题标题】:Inject script inside ajax loaded div在ajax加载的div中注入脚本
【发布时间】:2023-04-02 09:18:01
【问题描述】:

我在我的站点中使用 Jquery,并且我有一个 div,其中包含由 ajax 加载的内容,例如 iFrame。使用我的代码,我可以访问内容,甚至可以更改类和值,但我无法插入要执行的脚本。

有代码:

<script>
$("#loginsb").click(function () {

$('#curso')
          .contents()
          .find('#script').jQuery("<script>").prop("tagName")
          .attr('src', load.js);
});
</script>

我的 ajax 加载的 div 是 curso 并且在这个 div 里面我有另一个 div script 我放置了脚本行 - 没有 src。这是我知道在我的页面中使用多个脚本并find其中一个的唯一方法。

Curso div 内

<div id="script">
<script></script>
</div>

有没有办法在我的 div 脚本中将此 src 归因?谢谢!

【问题讨论】:

  • 我认为您的方法不正确。为什么在 ajax 中加载后需要将脚本写入文档标签?
  • 谢谢你,Kondziutek。我在这个文档中的元素有动画,我需要它们在用户点击另一个页面的一个按钮后运行。脚本会这样做,但如果我加载页面的其余部分,元素将在点击之前运行。
  • .prop("tagName")返回tagName,如字符串"script",没有方法.attr()
  • 对不起,adeno,但我不明白。我在过去 2 周内了解了 Jquery,所以,我的编程现在一团糟。你能告诉我如何解决这个问题吗?
  • 如果它是同一页面上的 div 则 $('#curso').find('script').attr('src', 'load.js');

标签: javascript jquery ajax


【解决方案1】:

你错过了一些理解 Javascript 和 jQuery 的基础知识。 第一件事:你只能有一个 id="script" 的元素,在你的例子中,你里面有一个 script 元素。

因此,您可以使用 jQuery 在脚本 id 元素中定位该脚本元素:

$('#script script')

然后调整脚本的来源:

$('#script script').attr('src', 'load.js');

(注意 load.js 两边的引号。这是一个字符串文字,不是变量或常量。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多