我在网页中嵌入了一个iframe,我想在这个框架中注入jquery。
我尝试过类似的事情:
frame.contentWindow.$ = window.$
虽然这有效,但iframe的$仍然在父级的范围内运行而不是自己的独立副本。
有没有办法在iframe中注入一个独立的jquery对象而不在框架中注入<script src="/path/to/jquery.js"></script>
?
更新
解决了它。 jquery.js通过接受匿名函数中的window对象,方便地为作用域定义jQuery:
function(windowObject){ .... define jquery }(window)
所以我所要做的就是命名这个功能,例如。 j为父窗口对象调用一次并调用它,然后为子窗口对象调用它。
jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)
答案 0 :(得分:0)
您可以尝试克隆jQuery对象:
关于如何实现.clone函数的See this answer或this one,请调用:
iframe.contentWindow.$ = window.$.clone();
或
iframe.contentWindow.$ = window.$.bind({});
...取决于您选择如何克隆该功能。
答案 1 :(得分:0)
解决了它。 jquery.js通过接受匿名函数中的window对象,方便地为作用域定义jQuery:
function(windowObject){.... define jquery}(window) 所以我所要做的就是命名这个功能,例如。 j为父窗口对象调用一次并调用它,然后为子窗口对象调用它。
jQuerify = function(windowObject){ .... define jquery }
jQuerify(window)
jQuerify(iframe.contentWindow)