我有一个在HTA(MSFT HTML应用程序)中运行的应用程序,它在整个帧中反复使用相同的脚本文件;因为它在某些地方命中9并且应用程序设置在各种服务器中,并且缓存设置为立即到期我试图在这个泥球中创造某种性能。
有没有好的'在顶部框架中加载主脚本文件然后在框架中将其排除的方法,即
--- TOP WINDOW ----
var MainScript = function(){ return (function(){ all current functions etc here })(); };
--- SUB Frames ----
var FrameScript = top.MainScript;
FrameScript();
这会如何受窗口范围的影响(它会保持顶部窗口范围还是在框架窗口的范围内)
答案 0 :(得分:0)
最简单的方法似乎是给子帧一个ID然后用主框架中加载的脚本动态填充它(使用eval使js运行);
即
|> 家长(又名TOP Frame)
<script>top.windows = [];</script>
<script id="MyScript">
var test = function(){ top.windows.push(window); }
</script>
|&GT;&GT;的子帧强> 在IFrame中加载SubSubFrame
|&GT;&GT;&GT;的 SubSubFrame 强>
<script id="SF1">
document.getElementById("SF1").innerHTML = eval(top.window.document.getElementById("MyScript").innerHTML);
test();
</script>
在受信任的域内深达8帧以上(在.hta中为此设置应用程序= true)
我使用了top.windows []所以我可以查看范围。 (在firebug中输入console.log(top.windows))
Nausiating和deep;谷歌做类似的事情来推迟JS加载/执行。