代码之家  ›  专栏  ›  技术社区  ›  Iain Fraser

如何在HTA中检测window.open(…)?

  •  0
  • Iain Fraser  · 技术社区  · 15 年前

    我正在开发一个HTA,它将在我们的接待区作为一个信息亭运行。这个信息亭可以显示使用window.open()方法启动新窗口的网页。

    我要做的是在HTA中处理window.open(),因此新窗口将出现在HTA中的浮动iframe中,而不是生成Internet Explorer窗口。

    我该怎么做有什么想法吗?

    这里有一些伪代码显示了一个理想的场景(尽管我知道实际的解决方案可能会更复杂)。

    function onWindowDotOpen(obj)
    {
       spawnNewIframeTab(obj); // Handle the event in the HTA
       return false; // Stop the default behaviour from firing
    }
    

    有没有vbscript解决方案?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Iain Fraser    15 年前

    我通过重写加载的iframe的“window.open”解决了我的特定问题。您可以在HTA中执行此操作,但在常规浏览器中不起作用。

    <iframe onload="iframe_onload(this)" src="..."...></iframe>
    <script type="text/javascript">
    iframe_onload = function(obj)
    {
        $(obj).contents().get(0)
        frame.frames.window.open = function(url, name, features, replace)
        {
            ...
        }
    }
    </script>
    
    推荐文章