我正在开发一个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解决方案?
我通过重写加载的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>