2010-08-10 30 views
0

我正在開發一個HTA,它將作爲我們的接待區的一個信息亭來運行。此信息亭可以顯示使用window.open()方法啓動新窗口的網頁。如何從HTA內檢測window.open(...)?

我想要做的就是在我的HTA中處理window.open(),所以不會產生Internet Explorer窗口,新窗口將出現在HTA中的浮動iframe中。

任何關於如何去做這件事的想法?

下面是一些顯示理想情況的僞代碼(儘管我知道實際的解決方案可能會更復雜)。

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

是否有VBScript解決方案?

+0

的可能重複[JavaScript的:重寫警報()(http://stackoverflow.com/questions/1729501/javascript-overriding-alert) – 2010-08-10 09:10:00

+1

與覆蓋'警報(該欺騙交易)'但壓倒一切的' window.open()'應該以完全相同的方式工作。 – 2010-08-10 09:10:35

回答

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>