1

Javascript / HTML コード

<script type="text/javascript">
function configurator(clicked) { 
return clicked.name;   
} 
</script>

<a name="link1" href="#" onclick="configurator(this)">Link 1</a>
<a name="link2" href="#" onclick="configurator(this)">Link 2</a>

リンクの onclick イベントがトリガーされたときに、「clicked.name」値を C# の「result」変数としましょう。私はそれを行う方法がわかりません。誰か助けてくれませんか...

注: 私はまだ Awesomium を初めて使用します :)

アップデート:

少し変更して @JonnyReeves メソッドに従います。

using (JSObject myGlobalObject = webControl1.CreateGlobalJavascriptObject("myGlobalObject"))
{
    myGlobalObject.Bind("onLinkClicked", true, (sen, eve) =>
    {
        MessageBox.Show(Convert.ToString(sen));
    });
}

しかし、クリックしたリンクの名前ではなく、結果として「Awesomium.Windows.Controls.WebControl」を取得しました。

4

1 に答える 1

0

Awesomium のJSObject.bindメソッドを利用して、JavaScript から C# メソッドを呼び出すことができたようです。典型的なアプローチは、すべての「ブリッジ」メソッド (つまり、C# と JavaScript の間でデータを渡すメソッド) を含む JavaScript グローバル オブジェクトを公開することです。

// Create and acquire a Global Javascript object.
// These object persist for the lifetime of the web-view.
using ( JSObject myGlobalObject = webView.CreateGlobalJavascriptObject( "myGlobalObject" ) )
{
    // The handler is of type JavascriptMethodEventHandler. Here we define it
    // using a lambda expression.
    myGlobalObject.Bind( "onLinkClicked", false, ( name ) =>
    {
        Debug.Print( String.Format( "User clicked: {0}", name ) );
    } );
}

JavaScript コードからこのメソッドを呼び出せるようになりました。

<script type="text/javascript">
    function configurator(clicked) 
    { 
           myGlobalObject.onLinkClicked(clicked.name);
    } 
</script>
于 2013-03-24T07:48:21.437 に答える