javascript in webbrowser ausführen

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Svenley.

    javascript in webbrowser ausführen

    Vorab!
    Ich rede nicht von der ScriptErrorsSuppressed Eigenschaft womit man die Fehler unterbindet!
    Ich möchte wissen wie ich mit dem Webbrowser Javascripte ausführen kann.
    Habe zwar gegooglet aber nichts gefunden nur immer diese Threads mit den Skriptfehler unterbinden...
    Aber das suche ich nicht.
    Ich möchte Javascripte ausführen können wenn ich auf einer beliebigen Seite bin.
    Ob mit dll oder Verweis ist mir egal, Hauptsache es funktioniert nur weiß ich nicht wie.


    Gruß, Sven
    Ich will keine eigenen Befehle definieren oder ausführen sondern die, die von einer Webseite aus kommen!

    Auf Deutsch -> Javascript soll im Browser einfach nur funktionieren, ich schreibe keine eigenen Befehle.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Svenley“ ()

    Svenley schrieb:

    Wie wäre es mit einem Beispiel wie man das am einfachsten realisiert?

    Ich stehe derzeit ein klein wenig unter Zeitdruck da bleibt nicht viel Zeit alles durchzulesen. :)


    Also so schonmal gar nicht, du hast alles was du benötigst kurz und knackig in meinem ersten Post, wenn du damit nicht klar kommst ist das DEIN Problem.
    Es ist nicht unsere Aufgabe dir Mundgerechten Code zu geben oder den Lehrer zu spielen, die Zeit die bisher verstichen ist, hättest längst bei MSDN die InvokeScript()-Methode nachgeschlagen und auf dein Projekt angewendet, heißt nach meinem Post um 10:36 hättest du aller spätestens um 10:50 bereits deine Informationen und könntest weiter machen.

    Ein Forum ist für Hilfestellung und genau diese habe ich dir gegeben, wieso lang und breit alles erläutern was bereits im Netz gut Dokumentiert vorhanden ist?
    Die Erfahrung zeigt, dass fertige Codes Posten nicht fruchtet und die User dann laufen Codestücke fordern weil sie null Ahnung haben und nur Copy&Paste können, aber den Code den sie Kopieren nicht Analysieren und somit auch nicht verstehen und auch nicht selbstsändig erweitern oder anpassen können.

    Dodo schrieb:

    Svenley schrieb:

    Wie wäre es mit einem Beispiel wie man das am einfachsten realisiert?

    Ich stehe derzeit ein klein wenig unter Zeitdruck da bleibt nicht viel Zeit alles durchzulesen. :)


    Also so schonmal gar nicht, du hast alles was du benötigst kurz und knackig in meinem ersten Post, wenn du damit nicht klar kommst ist das DEIN Problem.
    Es ist nicht unsere Aufgabe dir Mundgerechten Code zu geben oder den Lehrer zu spielen, die Zeit die bisher verstichen ist, hättest längst bei MSDN die InvokeScript()-Methode nachgeschlagen und auf dein Projekt angewendet, heißt nach meinem Post um 10:36 hättest du aller spätestens um 10:50 bereits deine Informationen und könntest weiter machen.

    Ein Forum ist für Hilfestellung und genau diese habe ich dir gegeben, wieso lang und breit alles erläutern was bereits im Netz gut Dokumentiert vorhanden ist?
    Die Erfahrung zeigt, dass fertige Codes Posten nicht fruchtet und die User dann laufen Codestücke fordern weil sie null Ahnung haben und nur Copy&Paste können, aber den Code den sie Kopieren nicht Analysieren und somit auch nicht verstehen und auch nicht selbstsändig erweitern oder anpassen können.


    Und wenn DU kein Bock hast dann brauchste dich auch garnicht großartig aufzuspielen.
    Man kann nicht jeden in einem Topf werfen der dasselbe mal fragt wie die 10000 anderen Kids.

    Wenn ich mit der riesigen information "InvokeScript()" nicht viel anfangen kann dann is das halt so, naund?
    Muss man dann einen gleich mit anderen vergleichen? Heißt das automatisch das man keine Ahnung von allem hat?
    Ich glaube nicht.

    Also wenn Du nichts weiteres zu diesem Thema Beitragen kannst außer ein auf schlau machen statt richtige Hilfe zu geben dann halte dich bitte aus dem Thema fern und prahle nicht mit deinem Wissen.

    Es ist nicht unsere Aufgabe dir Mundgerechten Code zu geben oder den Lehrer zu spielen

    Ist es auch nicht aber dann brauchste Dich hier auch garnicht melden.


    Die Erfahrung zeigt, dass fertige Codes Posten nicht fruchtet

    Siehe oben.
    Mit knapp 22 Jahren dürfte es mir wohl nicht schwer fallen den Code zu untersuchen und daraus zu lernen.
    Ich bin halt noch kein Profi darin merk dir das.

    Momentan arbeite ich 50 Std die Woche und bin erst um 7 Uhr zuhause, wenn ich sage ich hab kaum Zeit dann ist das gerechtfertigt, ich sags bestimmt nicht weil ich überhaupt kein bock hab mich mit der Materie auseinander zusetzen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Svenley“ ()

    Na siehste, ich habe dich immerhin fähig gehalten eine Suchmaschine bedienen zu können, bei anderen würde ich nämlich dann gleich den MSDN Link schicken.

    Ich habe Bock und zwar habe ich ich Bock Leuten etwas bei zu bringen, aber das geht nunma nicht mit vorsagen. Ich habe dir eine Methode gegeben und klar kannst du damit wohl erstmal nichts anfangen, aber das heißt ja nichts, sondern da geht man auf google gibt die "stichwort vb.net" oder "stichwort msdn" ein und erhält massig an informationen.

    InvokeScript() -> google.de/search?q=invokescript+msdn -> msdn.microsoft.com/de-de/library/cc491132.aspx -> :thumbsup:

    Ich habe halt gehofft das den normalen Workflow der Informationsbeschaffung beherrscht, gerade mit 22 Jahren sollte man hierzu in der Lage sein. Egal wie neu man in einer Programmiersprache oder sonstigen Thema ist.

    Die Hilfe die ich dir hier gebe ist besser als alles vorsagen, denn durch nichts lernt man sogut als durch Eigeninitiative, da benötigt man manchmal ein kleinen Schubs in die richtige Richtung, den ich dir durch das Stichwort gegeben habe, auch ich benötige sowas manchmal, das ist absolut nichts verwerfliches, ich bin auch nicht allwissend.
    Glaub mir wie ich Google verwende weiß ich schon (bis jetzt hab ich mir immer selbst aus der Schlinge geholfen da ich ziemlich ungeduldig bin :D ) und wie man die Scripts selbst aufrufen kann habe ich auch herausgefunden nur ist das nicht das was ich suche.
    In den Threads steht ja überall beschrieben wie ich das alles selbst alles erstelle wie

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
    2. System.EventArgs) _
    3. Handles Button1.Click
    4. Dim win As HtmlWindow = WebBrowser1.Document.Window
    5. Dim mshtmlWin2 As mshtml.IHTMLWindow2 = CType(win.DomWindow, _
    6. mshtml.IHTMLWindow2)
    7. Dim script As String = "alert('Hallo Welt');"
    8. mshtmlWin2.execScript(script)
    9. End Sub


    Aber!
    Die Befehle kommen ja von der Webseite, die führe ich ja nicht direkt selbst aus.
    Wenn ich z.b. eine Eingabe in einem Fenster mache und Enter drück wird ein Befehl zur Seite hingeschickt via javascript aber es funktioniert nicht weil ich einen Skriptfehler erhalte mit dem Inhalt "Für die Eigenschaft "AutoCompleteForm" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert"
    Was soviel heißt das z.b. der Enter-Befehl nicht an die Webseite weitergegeben wird. UND DAS Problem versuche ich zu lösen:)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Svenley“ ()

    So wie ich das verstanden habe willst du eine JavaScript Funktion auf in einer HTML Seite ausführen welche du im WebBrowser angesurft hast.
    Gehe ich soweit richtig in der Annahme??

    Bsp: Der Browser zeigt dieses Dokument

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <script type="text/javascript" language="javascript">
    4. function irgendwas() {
    5. alert("Hallo Welt");
    6. }
    7. </script>
    8. </head>
    9. <body>
    10. bla bla
    11. </body>
    12. </html>


    und du willst diese Funktion aufrufen

    VB.NET-Quellcode

    1. WebBrowser1.InvokeScript("irgendwas")


    Diese Methode geht nicht? Oder ist dies nicht das was du vor hast??
    Ja genau

    nur das irgendwas
    WebBrowser1.InvokeScript("irgendwas")


    ist von der Webseite vorgegeben. :)

    Hier mal ein Ausschnitt.


    Also oben z.b. tippe ich jetzt eine Seriennummer ein und drücke Enter
    Dieser Inhalt muss jetzt per Skript halt ans Programm gesendet werden aber mit dem Webbrowser funktioniert das nicht wegen Skriptfehler das wiedergegeben wird.

    Darunter ist eine Toolbar mit jeweils einem Befehl pro Icon aber sobald ich draufklick, Skriptfehler.
    Hmm - also post#10 isjamalwieder nicht ganz un-nervtötend. Wir reden 9 Posts lang von InvokeScript(), und TE erzählt das wisse er alles schon, und habe schon selbst herausgefunden, und wisse auch, wie man Google benutzt (k.A., wozu - InvokeScript ist doch im ObjektBrowser hinreichend dokumentiert), und dann bringter zur Illustration ein Codesample, was mit InvokeScript aber auch garnix zu tun hat.

    Was hatterdamit tatsächlich illustriert?

    ErfinderDesRades schrieb:

    Hmm - also post#10 isjamalwieder nicht ganz un-nervtötend. Wir reden 9 Posts lang von InvokeScript(), und TE erzählt das wisse er alles schon, und habe schon selbst herausgefunden, und wisse auch, wie man Google benutzt (k.A., wozu - InvokeScript ist doch im ObjektBrowser hinreichend dokumentiert), und dann bringter zur Illustration ein Codesample, was mit InvokeScript aber auch garnix zu tun hat.

    Was hatterdamit tatsächlich illustriert?


    Post #11 von Dodo

    Die Sachen definiert man selbst mit InvokeScript aber ich definiere die Befehle ja nicht selbst die kommen von der Webseite aus und der Browser will die Befehle nicht ausführen wie oft denn noch. :rolleyes:
    Mit InvokeScript() definiert man keine "Befehle" selbst, sondern führt einfach ein Script aus, welches sich im HtmlDokument befindet.

    Also du hast dein eigentliches Problem relativ bescheiden ausgedrückt wenn ich das mal anmerken darf.
    Funktioniert also das Script nichtmal wenn es von der Seite selbst ausgeführt wird, wie soll das dann funktionieren indem man es manuell über den Browser ausführt? Da würde es zu den gleichen Scriptfehlern kommen O.o wie hast du dir das vorgestellt?

    Was sein könnte, manche Methoden in JS werden im IE anders angesprochen als im FF oder anderen Browsern. Kann das sein dass diese Seite gar nicht im IE Funktioniert?
    Um allgemein alle Skriptbefehle auf jedem beliebigen HTML Dokument auszuführen?

    Ich meine ich hab ja kein Button mit Definition WebBrowser1.InvokeScript("mach jetzt das")

    Auf dem HTML Doku sind alle Buttons eingebettet mit ihren Befehlen.

    Im IE9 und FF funktioniert alles (bis auf den rtf editor bei ff) deswegen versteh ich nicht warum im normalen Browserobjekt von .NET bei jeder Anwendung Skriptfehler wiedergegeben werden statt die Befehle auszuführen :huh:


    Z.B. in der Toolbar (siehe Post #12 Bild) ich klicke den roten Button "Close" der eine offene Anwendung schließen soll.
    Ich klicke drauf und zack Skriptfehler und kein befehl wird ausgegeben.
    Sofern die Funktionen in dem Html Dokument stehen kannst sie mit InvokeScript() ausführen, ja.
    Naja das soll dahin, wo du das Script ausführen willst, z.B. bei einem Button in deiner Form oder so. Aber langsam glaube ich das wir hier ganz auf der falschen Fährte sind.

    Wenn der WebBrowser-Control ScriptFehler ausgibt, dann sind die unweigerlich da und können nicht einfach "weggemacht" werden oder sonst was. Man kann die Meldung unterdrücken, aber die Fehler bleiben da und somit wird das JavaScript nicht weiter ausgeführt.
    Wieso die Fehler kommen nun das WebBrowser Control ist wohl nicht das gleiche wie im IE9, keine Ahnung woher die Engine genau kommt.

    Also wie gesagt, wenn die Seite nichmal normal richtig funktioniert, wenn du sie benutzt, dann wirste da auch wenig mit VB machen können.

    ErfinderDesRades schrieb:

    Svenley schrieb:

    Was hatterdamit tatsächlich illustriert?

    Post #11 von Dodo

    Genau.

    Durch penetrantes Gefasel schließlich doch einen kompletten Code - Html und VB - dem Dodo aus den Rippen geleiert.

    Genau das Verhalten, um dasses auf Threads löschen bei Gefasel? geht.


    Du bist ja ein ganz schlauer.
    Würdest Du mitlesen und nicht deine Posts mit deinem sinnlosen Geschwafel aufstocken, würdeste wissen das ich mit den Code nichts anfangen kann und das nicht das Problem ist.

    Also bitte wenne nichts nützliches dazu beitragen kannst sei bitte still und spam hier nicht rum.