1

質問はそれをすべて言います。私はすべてを配線し、ブラウザのhtmlからc#にメッセージを送信する方法を知っていますが、他の方法は知りません。

私は次のようなことができるはずです:

browserControl.JSCall("myFunction('Dave','Smith');");

...そしてウェブコードでは:

   function myFunction(firstName, lastName) {
       $("#mydiv").text(firstName + ' ' + lastName);
   }

ありがとう - デイブ

4

4 に答える 4

3

これは、ナビゲートを使用して行うことができます。

browserControl.Navigate("javascript:void(myFunction('Dave','Smith'))");

アプリケーション イベント ループが実行されるまで、コードは実際には実行されないことに注意してください。それが問題である場合は、Navigate 呼び出しを次のように追跡できる場合があります。

Application.DoEvents();

DoEvents を明示的に呼び出すことの危険性を考慮してください。

于 2012-08-18T22:49:06.670 に答える
2

私は AutoJSContext クラスについて知っているので、javascript を Navigate() に渡す必要はありません。

    string outString = "";
    using (Gecko.AutoJSContext java = new Gecko.AutoJSContext(geckoWebBrowser1.JSContext))
    {
          java.EvaluateScript(@"window.alert('alert')", out outString );
    }
于 2013-04-08T23:08:24.030 に答える
0

Navigateメソッドを使用する以外に、次の別の回避策があります。

var script = geckofx.Document.CreateElement("script");
script.TextContent = js;
geckofx.Document.GetElementsByTagName("head").First().AppendChild(script);
于 2012-11-21T22:52:27.073 に答える