你如何从HTA中检测到window.open(...)?

时间:2010-08-10 08:52:50

标签: javascript internet-explorer vbscript hta

我正在开发一个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 个答案:

答案 0 :(得分:0)

我通过覆盖加载的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>