如何从Iframe访问父库

时间:2016-09-05 14:23:01

标签: javascript html iframe

我正在编写一个Web应用程序,使用的嵌入式Web服务器不允许我编辑http标头,因此使用文件缓存。 我的应用程序使用iframe,但问题是每次我更改iframe的src时,它都会重新加载我使用的每个库,即使它们是在父窗口中加载的。

我知道我可以通过以下方式获得JQuery:

var jQuery = window.parent.jQuery;

对每个JavaScript文件做同样的建议吗?

1 个答案:

答案 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/