2009-09-21 4 views
3

Je suis nouveau sur le contrôle WebBrowser. Dans le projet actuel, nous utilisons le contrôle WebBrowser pour intégrer le projet existant. Toutes les fenêtres contextuelles sont affichées dans un nouveau formulaire Windows. Lorsque "javascript window: close" est appelé dans la fenêtre contextuelle, l'instance IE vous demande toujours: voulez-vous fermer cette fenêtre. Nous utilisons WndProce pour vérifier WM_Destroy pour notifier le formulaire parent qui est sur le point de fermer, ce qui fonctionne bien. La seule chose que nous n'aimons pas le contrôle est que le message "Voulez-vous fermer cette fenêtre". Est-il possible de supprimer le message?Contrôle WebBrowser: comment supprimer un message: souhaitez-vous fermer cette fenêtre?

Toute suggestion sera grandement appréciée. Merci.

Répondre

5

Essayez d'utiliser l'une des deux fonctions suivantes pour fermer la fenêtre:

function closeWindow() 
{ 
    window.opener = self; 
    window.close(); 
} 

Ou:

function closeWindow() 
{ 
    window.open('', '_self'); 
    window.close(); 
} 
+2

La 2ème option a fonctionné pour moi dans IE. Exactement ce que vous demandez au navigateur de faire? – deostroll

+1

Il ouvre une nouvelle fenêtre sans URL spécifique avec la cible '_self' ce qui signifie que la fenêtre cible est la fenêtre où elle est exécutée. L'effet est que les fenêtres de document font sa propre fenêtre la fenêtre d'ouvreur, et en prennent ainsi la propriété. Ensuite, il aura accès à se fermer, puisqu'il l'a ouvert ... – awe

2

Ceci est une caractéristique de sécurité de IE. L'idée est d'empêcher les scripts potentiellement malveillants de fermer une fenêtre que l'utilisateur ne voulait pas fermer. L'exception est si la fenêtre a été ouverte par un script sur le même domaine, ce qui indique que c'est l'application Web qui "possède" la fenêtre, de sorte qu'elle peut également la fermer. Dans ce cas, vous n'obtenez pas l'avertissement.

+0

mais, je reçois toujours l'avertissement bien que mes scripts soient sur le même domaine:/bon essai, IE - mais vous avez encore échoué –

+0

@SamWatkins: Il pourrait être également une exigence qu'il s'agit de la même application Web dans la session en cours. – awe

Questions connexes