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

发布于 2024-09-13 14:40:50 字数 438 浏览 4 评论 0原文

我正在开发一个 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 解决方案吗?

I am developing an HTA that will run as a kiosk in our reception area. This kiosk can display web-pages that launch new windows using the window.open() method.

What I want to do is handle window.open() from within my HTA, so instead of spawning an Internet Explorer window, the new window will appear in a floating iframe inside the HTA.

Any ideas as to how I'd go about doing this?

Here is some pseudocode showing an ideal scenario (although I'm aware the actual solution will probably be more complicated).

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

Is there a VBScript solution at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风铃鹿 2024-09-20 14:40:50

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

I solved my specific problem by overriding the "window.open" of the loaded IFRAME. You can do this in an HTA, but it won't work in a regular browser.

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文