WPF Webbrowser kann kein Javascript ausführen

  • WPF

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    WPF Webbrowser kann kein Javascript ausführen

    Hallo Leute

    ich habe mal wieder ein Problem. Ich habe mir eine WPF Anwendung gebastelt und darin einen Webbrowser. Wenn ich jetzt allerdings irgendeine Website aufrufe werde ich gleich mal mit Javascript Fehler zugeflutet. Eigentlich will ich nur eine bestimmte Seite anzeigen ABER ich erhalte diese Fehlermeldungen auf ALLEN (ich denke ma alle benutzen Javascript) Websiten. Selbst auf google.de 8o Auf Discord, Facebook, Youtube und Co wird mir nur bissle Text angezeigt und das wars... Bilder, Videos oder anderes wird garnich erst geladen.
    Ich weiss das intern mein IE benutzt wird bzw soll. Mit meinem IE hab ich aber garkeine Probleme wenn ich damit bissle rumsurfe. Facebook, Youtube und alles andere funktioniert perfekt. Gibts da noch eine Einstellung die ich machen muss? Also im Programm selber? So is das irgendwie total unbrauchbar. Wie ich die Fehlermeldungen unterdrücken kann weiss ich schon... Aber das nützt recht wenig wenn es nich ausgeführt wird...
    Bis jetz habe ich das hier gefunden. stackoverflow.com/questions/86…ded-in-a-winform-which-is aber so ganz verstehe ich das nich? ich kann doch nich Google freundlich fragen ob die ma was ändern können? ?(


    Oder gibts vllt einen besseren WPF Webbrowser zum einbinden?
    Hallo

    Würde mich aber wundern, habe schon öfters mal einen WB eingesetztzt, da war alles in Ordnung. Der einzige Unterschied zwischen dem der WPF und dem von WinForms (deshalb wird das auf StackOverflow empfohlen) ist das der auch WPF sehr viel weniger Funktionen hat. Ich denke das ist nur ein Wrapper um des Controls aus WinForms.

    Mach mal bitte ein Testprojekt und lade es hoch, würde mich echt wundern wenn er kein Java könnte.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m
    Ja ich verstehe es auch nich. Habe gerade eine schnelle Testversion erstellt und auch da hab ich das Problem. Mach ich da was falsch?
    Bilder
    • Unbenannt.PNG

      69,16 kB, 1.513×862, 199 mal angesehen
    Dateien
    Hallo

    Sehr gut. Jetzt können wir es mal eingrenzen. Definitiv stimmt an deinem Rechner/IE etwas nicht.
    Hier bei mir funzt dein Programm tadellos.



    Bitte kontrolliere mal ob du JavaScript im IE zulässt.
    Wekches System hast du? 32Bit?, Genaue Windows Version?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m
    Such mal bitte nach etwas in Google. Am besten nach YouTube. Da kam bei mir die erste Meldung.
    Also ich hab Win10 64 Bit. Und mein IE schmeisst mir auch keine Fehlermeldungen wenn ich irgendwas suche. Ich kann selbst die gleiche Website (die ich eigentlich einbinden will) im IE problemlos aufrufen aber im Programm nich.
    Ahhhh, jetzt weis ich was du meinst.

    Du meinst das Property SuppressScriptErrors welches es beim WPF Browser nicht gibt.
    Sorry, stand wohl am schlauch.

    Also, folgende Lösung:

    C#-Quellcode

    1. private void Window_Loaded(object sender, RoutedEventArgs e)
    2. {
    3. Webbrowser1.Navigate("http://www.google.de");
    4. }
    5. public void HideScriptErrors(WebBrowser wb, bool hide)
    6. {
    7. var fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
    8. if (fiComWebBrowser == null) return;
    9. var objComWebBrowser = fiComWebBrowser.GetValue(wb);
    10. if (objComWebBrowser == null)
    11. {
    12. wb.Loaded += (o, s) => HideScriptErrors(wb, hide); //In case we are to early
    13. return;
    14. }
    15. objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, objComWebBrowser, new object[] { hide });
    16. }
    17. private void WB_Navigated(object sender, NavigationEventArgs e)
    18. {
    19. HideScriptErrors(Webbrowser1, true);
    20. }


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m
    Ich weiss nich ob es die richtige Lösung ist? Ich will die ja nich verstecken. Ruf mal bitte diese Seite bei dir auf "https://renegade-x.com/forums/"
    Die wird bei mir ohne Bilder und mit tonnen von Fehlern angezeigt. Das darf nich sein. Ich brauch die Seite schon richtig. Da weiss ich jetz nich ob deine Lösung, Die Fehler zu unterdrücken, das richtige ist?
    Für meine Anwendung benutze ich dafür schon. Machst du was anderes?

    C#-Quellcode

    1. private void WebbrowserRenXForumNavigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e)
    2. {
    3. dynamic activeX = this.MainWindowWebBrowserForum.GetType().InvokeMember("ActiveXInstance",
    4. BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
    5. null, this.MainWindowWebBrowserForum, new object[] { });
    6. activeX.Silent = true;
    7. }

    MVN050 schrieb:

    Für meine Anwendung benutze ich dafür schon. Machst du was anderes?

    War ja in der App die du hier Angehängt hast nihct dabei. Woher soll ich das wissen?

    Die problematik ist, das WebBrowser Control kann nicht alles was der "echte" IE kann/unterstützt. Das ist leider nun mal so.
    Ich habs gerade versucht, auch unter WinForms geht die Seite nicht korrekt auf. Da wird ein Script verwendet welches das Steuerelement nciht unterstützt.

    Du kannst es jetzt mit anderen "Browsern" versuchen wie diesem Gecko, aber ich denke mit dem WB-Control wirst du dir vermutlich die Zähne ausbeissen.

    Sorry das ich dir hier nicht mehr helfen kann.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##