首页 > 解决方案 > 更改 jQuery 中的窗口引用

问题描述

我们在文档上有一个友好的iframe。iframe 加载 jQuery。我们希望能够创建另一个 jQuery 实例(可能使用noConflict()),并将其设置window为主文档窗口。

我想象这样的事情:

<!-- Main document -->   
<div id="foo">42</div>
<iframe src="iframe-which-loads-jquery-and-my-script.html"></iframe>

然后,在 iframe 代码中,我们需要这样的内容:

const $mainJquery = createAJQueryInstanceOfTheMainWindow()
mainJquery("#foo").text() // → "42"

这怎么可能?我们如何window在 jQuery 中设置自定义对象?

标签: javascriptjqueryhtmliframe

解决方案


  function createAJQueryInstanceOfTheMainWindow(elem){

                return window.parent.$;  
            }

            const $mainJquery = createAJQueryInstanceOfTheMainWindow();


            $mainJquery(()=>{

               alert($mainJquery("#foo").text());
            })

把这个函数放在你的 iframe 中,你就会从父窗口获得新的 jQuery 实例。


推荐阅读