IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

JavaScript dans un Forms.WebBrowser


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut JavaScript dans un Forms.WebBrowser
    Bonjour,

    J'affiche une page HTML dans un composant Forms.WebBrowser.
    Cette page HTML contient un bouton "Fermer" dont le code JavaScript est
    Lorsque je clique sur le bouton "Fermer", la fenêtre reste ouverte et je dois cliquer sur la croix rouge en haut à droite, ce qui n'est pas très propre.

    Savez-vous s'il y a un événement qui se déclenche lorsque ce code JavaScript est exécuté dans mon composant ?

    Merci pour votre aide.

    SB

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Bonjour,

    Je remonte ce poste en donnant quelques informations.

    Je viens de faire un test en captant tous les événements pour mon composant Form et pour mon composant WebBrowser.

    Aucun événement ne s'est déclenché lorsque j'ai cliqué sur le bouton "Fermer" (window.close()) de la page affichée.

    Si quelqu'un a une idée, n'hésitez pas.

    Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmNavigateur_FormClosed);
    this.CursorChanged += new System.EventHandler(this.frmNavigateur_CursorChanged);
    this.StyleChanged += new System.EventHandler(this.frmNavigateur_StyleChanged);
    this.RightToLeftLayoutChanged += new System.EventHandler(this.frmNavigateur_RightToLeftLayoutChanged);
    this.MinimumSizeChanged += new System.EventHandler(this.frmNavigateur_MinimumSizeChanged);
    this.Deactivate += new System.EventHandler(this.frmNavigateur_Deactivate);
    this.Load += new System.EventHandler(this.frmNavigateur_Load);
    this.BackgroundImageLayoutChanged += new System.EventHandler(this.frmNavigateur_BackgroundImageLayoutChanged);
    this.RightToLeftChanged += new System.EventHandler(this.frmNavigateur_RightToLeftChanged);
    this.RegionChanged += new System.EventHandler(this.frmNavigateur_RegionChanged);
    this.InputLanguageChanged += new System.Windows.Forms.InputLanguageChangedEventHandler(this.frmNavigateur_InputLanguageChanged);
    this.ResizeBegin += new System.EventHandler(this.frmNavigateur_ResizeBegin);
    this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.frmNavigateur_MouseUp);
    this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.frmNavigateur_MouseDoubleClick);
    this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.frmNavigateur_ControlAdded);
    this.ClientSizeChanged += new System.EventHandler(this.frmNavigateur_ClientSizeChanged);
    this.MaximizedBoundsChanged += new System.EventHandler(this.frmNavigateur_MaximizedBoundsChanged);
    this.AutoSizeChanged += new System.EventHandler(this.frmNavigateur_AutoSizeChanged);
    this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.frmNavigateur_HelpButtonClicked);
    this.BindingContextChanged += new System.EventHandler(this.frmNavigateur_BindingContextChanged);
    this.Paint += new System.Windows.Forms.PaintEventHandler(this.frmNavigateur_Paint);
    this.EnabledChanged += new System.EventHandler(this.frmNavigateur_EnabledChanged);
    this.ContextMenuStripChanged += new System.EventHandler(this.frmNavigateur_ContextMenuStripChanged);
    this.Scroll += new System.Windows.Forms.ScrollEventHandler(this.frmNavigateur_Scroll);
    this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.frmNavigateur_MouseClick);
    this.SizeChanged += new System.EventHandler(this.frmNavigateur_SizeChanged);
    this.DragLeave += new System.EventHandler(this.frmNavigateur_DragLeave);
    this.ParentChanged += new System.EventHandler(this.frmNavigateur_ParentChanged);
    this.MouseCaptureChanged += new System.EventHandler(this.frmNavigateur_MouseCaptureChanged);
    this.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.frmNavigateur_ControlRemoved);
    this.Shown += new System.EventHandler(this.frmNavigateur_Shown);
    this.MouseEnter += new System.EventHandler(this.frmNavigateur_MouseEnter);
    this.AutoValidateChanged += new System.EventHandler(this.frmNavigateur_AutoValidateChanged);
    this.ChangeUICues += new System.Windows.Forms.UICuesEventHandler(this.frmNavigateur_ChangeUICues);
    this.DoubleClick += new System.EventHandler(this.frmNavigateur_DoubleClick);
    this.Activated += new System.EventHandler(this.frmNavigateur_Activated);
    this.Enter += new System.EventHandler(this.frmNavigateur_Enter);
    this.Layout += new System.Windows.Forms.LayoutEventHandler(this.frmNavigateur_Layout);
    this.VisibleChanged += new System.EventHandler(this.frmNavigateur_VisibleChanged);
    this.ForeColorChanged += new System.EventHandler(this.frmNavigateur_ForeColorChanged);
    this.DragDrop += new System.Windows.Forms.DragEventHandler(this.frmNavigateur_DragDrop);
    this.MdiChildActivate += new System.EventHandler(this.frmNavigateur_MdiChildActivate);
    this.Leave += new System.EventHandler(this.frmNavigateur_Leave);
    this.Click += new System.EventHandler(this.frmNavigateur_Click);
    this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.frmNavigateur_MouseDown);
    this.DragEnter += new System.Windows.Forms.DragEventHandler(this.frmNavigateur_DragEnter);
    this.PaddingChanged += new System.EventHandler(this.frmNavigateur_PaddingChanged);
    this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.frmNavigateur_KeyPress);
    this.MouseLeave += new System.EventHandler(this.frmNavigateur_MouseLeave);
    this.Validating += new System.ComponentModel.CancelEventHandler(this.frmNavigateur_Validating);
    this.DockChanged += new System.EventHandler(this.frmNavigateur_DockChanged);
    this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmNavigateur_KeyUp);
    this.Move += new System.EventHandler(this.frmNavigateur_Move);
    this.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.frmNavigateur_GiveFeedback);
    this.ImeModeChanged += new System.EventHandler(this.frmNavigateur_ImeModeChanged);
    this.QueryContinueDrag += new System.Windows.Forms.QueryContinueDragEventHandler(this.frmNavigateur_QueryContinueDrag);
    this.SystemColorsChanged += new System.EventHandler(this.frmNavigateur_SystemColorsChanged);
    this.QueryAccessibilityHelp += new System.Windows.Forms.QueryAccessibilityHelpEventHandler(this.frmNavigateur_QueryAccessibilityHelp);
    this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmNavigateur_FormClosing);
    this.Resize += new System.EventHandler(this.frmNavigateur_Resize);
    this.Validated += new System.EventHandler(this.frmNavigateur_Validated);
    this.BackgroundImageChanged += new System.EventHandler(this.frmNavigateur_BackgroundImageChanged);
    this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.frmNavigateur_MouseMove);
    this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.frmNavigateur_HelpRequested);
    this.LocationChanged += new System.EventHandler(this.frmNavigateur_LocationChanged);
    this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.frmNavigateur_PreviewKeyDown);
    this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.frmNavigateur_KeyDown);
    this.BackColorChanged += new System.EventHandler(this.frmNavigateur_BackColorChanged);
    this.InputLanguageChanging += new System.Windows.Forms.InputLanguageChangingEventHandler(this.frmNavigateur_InputLanguageChanging);
    this.MouseHover += new System.EventHandler(this.frmNavigateur_MouseHover);
    this.ResizeEnd += new System.EventHandler(this.frmNavigateur_ResizeEnd);
    this.FontChanged += new System.EventHandler(this.frmNavigateur_FontChanged);
    this.DragOver += new System.Windows.Forms.DragEventHandler(this.frmNavigateur_DragOver);
    this.TextChanged += new System.EventHandler(this.frmNavigateur_TextChanged);
    this.CausesValidationChanged += new System.EventHandler(this.frmNavigateur_CausesValidationChanged);
    this.MaximumSizeChanged += new System.EventHandler(this.frmNavigateur_MaximumSizeChanged);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    this.wb.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.wb_ControlRemoved);
    this.wb.Validating += new System.ComponentModel.CancelEventHandler(this.wb_Validating);
    this.wb.ProgressChanged += new System.Windows.Forms.WebBrowserProgressChangedEventHandler(this.wb_ProgressChanged);
    this.wb.ContextMenuStripChanged += new System.EventHandler(this.wb_ContextMenuStripChanged);
    this.wb.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.wb_Navigating);
    this.wb.MarginChanged += new System.EventHandler(this.wb_MarginChanged);
    this.wb.Validated += new System.EventHandler(this.wb_Validated);
    this.wb.FileDownload += new System.EventHandler(this.wb_FileDownload);
    this.wb.ParentChanged += new System.EventHandler(this.wb_ParentChanged);
    this.wb.Resize += new System.EventHandler(this.wb_Resize);
    this.wb.ClientSizeChanged += new System.EventHandler(this.wb_ClientSizeChanged);
    this.wb.CausesValidationChanged += new System.EventHandler(this.wb_CausesValidationChanged);
    this.wb.RegionChanged += new System.EventHandler(this.wb_RegionChanged);
    this.wb.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.wb_ControlAdded);
    this.wb.NewWindow += new System.ComponentModel.CancelEventHandler(this.wb_NewWindow);
    this.wb.SizeChanged += new System.EventHandler(this.wb_SizeChanged);
    this.wb.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.wb_PreviewKeyDown);
    this.wb.TabStopChanged += new System.EventHandler(this.wb_TabStopChanged);
    this.wb.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.wb_DocumentCompleted);
    this.wb.DockChanged += new System.EventHandler(this.wb_DockChanged);
    this.wb.Move += new System.EventHandler(this.wb_Move);
    this.wb.VisibleChanged += new System.EventHandler(this.wb_VisibleChanged);
    this.wb.SystemColorsChanged += new System.EventHandler(this.wb_SystemColorsChanged);
    this.wb.LocationChanged += new System.EventHandler(this.wb_LocationChanged);
    this.wb.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.wb_Navigated);
    this.wb.TabIndexChanged += new System.EventHandler(this.wb_TabIndexChanged);

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 1
    Par défaut
    Bonjour,

    As tu vérifié si il y a un paramètre qui active le javascript dans la page affichée?

    Bon courage

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Si cela peut aider quelqu'un, voilà comment j'ai résolu mon problème.
    En m'inspirant (copier/coller) de ce forum.
    http://blogs.artinsoft.net/mrojas/ar...dow-close.aspx

    Il faut créer une classe qui hérite de la classe System.Windows.Forms.WebBrowser
    et surcharger la méthode Control.WndProc(ref Message m) pour récupérer le message WM_PARENTNOTIFY puis le paramètre WM_DESTROY.

    Je ne teste pas la propriété Component.DesignMode comme dans l'exemple car elle est toujours à true.

  5. #5
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Je ne teste pas la propriété Component.DesignMode comme dans l'exemple car elle est toujours à true.
    c'est faux, elle est true si tu es en mode design et pas en exécution,

    imagine qu'au chargement de ton control tu fais une requete ou un appel à un web sevice, ce code sera executé à chaque fois que tu ouvre le controle dans le designer, d'ou l'utilité de testé cette propriété.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Je viens de re-tester et la propriété Component.DesignMode n'est effectivement pas à true.

    Il me semble que pendant mes premiers tests, cette propriété était toujours à true et je n'arrivait pas jusqu'à la fonction qui fermait la fenêtre.

    Qui met cette propriété à true/false ? et à quel moment ?

    Merci pour tes réponses

  7. #7
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    tu as bien lu mon post précédent?

    cette propriété est à true quand tu travailles avec le Designer de Visual Studio.
    et à false en exécution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recuperé le code d'une function javascripts dans un webbrowser
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/02/2011, 11h23
  2. Capturer erreur javascript dans webbrowser
    Par justdams dans le forum VB.NET
    Réponses: 0
    Dernier message: 29/12/2010, 14h58
  3. Réponses: 3
    Dernier message: 31/12/2008, 12h27
  4. Désactiver le javascript dans le webbrowser ou instance internet.
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 28/08/2007, 14h50
  5. Javascript dans un formulaire type echo"<form action
    Par coyoteuch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo