如何将 Jquery 对象从父 iframe 注入到嵌入式 iframe

How can I inject a Jquery object from a parent iframe to an embedded iframe?

本文关键字:iframe 注入 嵌入式 Jquery 对象      更新时间:2023-09-26

我正在网页中嵌入一个iframe,我想在这个框架中注入jquery。

我尝试了类似的东西:

frame.contentWindow.$ = window.$

虽然这有效,但 iframe 的 $ 仍在父级的范围内运行,而不是它自己的独立副本。

有没有办法在不向帧中注入<script src="/path/to/jquery.js"></script>的情况下将独立的jquery对象注入iframe?

更新

解决了。jquery.js 通过在匿名函数中接受窗口对象来方便地定义作用域的 jQuery:

function(windowObject){ .... define jquery }(window)

所以我所要做的就是命名这个函数,例如 jQuerify 并为父窗口对象调用一次,然后为子窗口对象调用它一次。

jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)

解决了。jquery.js 通过在匿名函数中接受窗口对象来方便地定义作用域的 jQuery:

函数(窗口对象){ ....定义 jquery }(窗口)所以我所要做的就是命名这个函数,例如 jQuerify 并为父窗口对象调用一次,然后为子窗口对象调用它一次。

jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)

你可以尝试克隆 jQuery 对象:

请参阅此答案或有关如何实现 .clone 函数的答案,然后调用此答案:

iframe.contentWindow.$ = window.$.clone();

iframe.contentWindow.$ = window.$.bind({});

。具体取决于您选择克隆函数的方式。