2

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

我试过类似的东西:

frame.contentWindow.$ = window.$

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

有没有办法将独立的 jquery 对象注入 iframe 而无需<script src="/path/to/jquery.js"></script>在框架中注入 a?

更新

解决了。jquery.js 通过在匿名函数中接受 window 对象方便地为范围定义 jQuery:

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

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

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

2 回答 2

1

解决了。jquery.js 通过在匿名函数中接受 window 对象方便地为范围定义 jQuery:

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

jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)
于 2016-11-03T23:48:17.833 回答
0

您可以尝试克隆 jQuery 对象:

请参阅this answerthis one on how to implement a .clone function,然后调用:

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

或者

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

...取决于您选择如何克隆该功能。

于 2012-05-02T04:33:30.543 回答