2010-08-10 26 views
0

Je développe une HTA qui fonctionnera comme un kiosque dans notre zone de réception. Ce kiosque peut afficher des pages Web qui lancent de nouvelles fenêtres en utilisant la méthode window.open(). Ce que je veux faire est de gérer window.open() à partir de mon HTA, donc au lieu de générer une fenêtre Internet Explorer, la nouvelle fenêtre apparaîtra dans un iframe flottant à l'intérieur de l'HTA.Comment détecter window.open (...) à partir d'un HTA?

Avez-vous des idées sur la façon de procéder?

Voici un pseudo-code montrant un scénario idéal (bien que je sache que la solution actuelle sera probablement plus compliquée).

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

Existe-t-il une solution VBScript?

+0

double possible de [javascript: alert Redéfinition()] (http://stackoverflow.com/questions/1729501/javascript-overriding-alert) –

+1

Les offres de Dupe avec dépassement 'alerte()' 'mais prioritaire window.open() 'devrait fonctionner exactement de la même manière. –

Répondre

0

J'ai résolu mon problème spécifique en remplaçant le "window.open" de l'IFRAME chargé. Vous pouvez le faire dans un HTA, mais cela ne fonctionnera pas dans un navigateur normal.

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