我在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加载/执行的事情。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top