我正在努力了解我的代码中发生了什么。
所以我正在做的是 1.页面中的iframe - 使用一些javascript指向aspx页面。值得注意的是同一个域,因此没有访问权限。 2. iframe窗口中的代码获取父文档对象并将requirejs注入父头,并使用config来加载my-custom-code.js 3.所以my-custom-code.js被加载到父页面的头部并且运行正常。
!!!这是我没有得到的! 当我尝试在my-custom-code.js中使用窗口和文档时,它们实际指向子(iframe)文档和窗口???
所以我想了解它的工作原理。
由于
更新:iframe js文件
var $doc = $(parent.document);
var head = $doc.find("head");
var body = $doc.find("body");
var reqConfigScript = "<script class='require-default-config'>var require = { deps: ['http:\/\/localhost/scripts/parent-main.js'], callback: function(main){ } };</script>";
body.append(reqConfigScript);
var parentScript = "<script src='http:\/\/" + location.host + "/scripts/require-2.1.11.min.js' type=\"text/javascript\"></script>";
head.append(parentScript);
答案 0 :(得分:1)
好吧,这有点难以猜测,因为我不确切知道图书馆的运作方式......但试试这个:
parent.require = {
deps: ['http:\/\/localhost/scripts/parent-main.js'],
callback: function(main){ }
};
var parentScript = parent.document.createElement('script');
// important to use `parent.document` so the right document owns the script
parentScript.src = "http://"+location.host+"/script/require-2.1.11.min.js";
parentScript.type = "text/javascript";
parent.document.body.appendChild(parentScript);