我正在编写一个Web应用程序,使用的嵌入式Web服务器不允许我编辑http标头,因此使用文件缓存。 我的应用程序使用iframe,但问题是每次我更改iframe的src时,它都会重新加载我使用的每个库,即使它们是在父窗口中加载的。
我知道我可以通过以下方式获得JQuery:
var jQuery = window.parent.jQuery;
对每个JavaScript文件做同样的建议吗?
答案 0 :(得分:0)
由于您可以访问窗口范围,因此您可以访问存储在其中的引用的每个库。
underscore.js的示例。
var underscore = window.parent._;
您甚至可以创建自己的引用:
(function(myLibrary){
//anonymous scope
var doStuff = function(whatStuff){
whatStuff = whatStuff || 'defaultStuff';
alert('Doing ' + whatStuff);
};
//adding stuff to my library
myLibrary.doStuff = doStuff;
//publishing myLibrary to the desired scope
//iframe's parent
window.parent.myLibrary = myLibrary;
//current window
window.myLibrary = myLibrary;
}({}))
但为什么呢?这里有一些关于东西如何运作的信息:
Possible to share javascript imports across iframes?
How to use jquery from parent inside an iframe?
https://www.sitepoint.com/jquery-sharing-parents-iframes-inherit-js/