-
11-10-2019 - |
题
我在HTA(MSFT HTML应用程序)中运行了一个应用程序,该应用程序在整个帧中一遍又一遍地使用相同的脚本文件;随着该应用程序在各种服务器中设置为9,该应用程序设置为即时到期,我试图在这个泥浆中弄清某种性能。
是否有一种“好”方法可以将主脚本文件加载到顶框架,然后将其借面在框架中IE中。
- - 顶部窗户 - -
var MainScript = function(){ return (function(){ all current functions etc here })(); };
---子框架----
var FrameScript = top.MainScript;
FrameScript();
以及这将如何受到窗口范围的影响(它会保持顶部窗口范围或处于窗框的范围)
解决方案
最简单的方法似乎是给子帧一个ID,然后用总体框架中加载的脚本动态填充它(使用eval来使JS运行);
IE
|> 父(又称顶帧)
<script>top.windows = [];</script>
<script id="MyScript">
var test = function(){ top.windows.push(window); }
</script>
|>> 子帧在iframe中加载子框
|>>> 子框架
<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))
恶心而深处; Google做类似于延迟JS加载/执行的事情。
不隶属于 StackOverflow