2010-08-10 2 views
0

Я разрабатываю HTA, который будет работать как киоск в нашей зоне приема. Этот киоск может отображать веб-страницы, которые запускают новые окна, используя метод window.open().Как вы обнаруживаете window.open (...) изнутри HTA?

Что я хочу сделать, это handle window.open() из моего HTA, поэтому вместо появления окна Internet Explorer новое окно появится в плавающем iframe внутри HTA.

Любые идеи относительно того, как я буду это делать?

Вот несколько псевдокодов, показывающих идеальный сценарий (хотя я знаю, что фактическое решение, вероятно, будет более сложным).

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) –

+1

В надуть дело с переопределение 'предупреждение()' 'но наиважнейшая window.open() 'должен работать точно так же. –

ответ

0

Я решил свою конкретную проблему, переопределив «window.open» загруженного IFRAME. Вы можете сделать это в 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> 
Смежные вопросы