Javascript / HTML Code
<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>
我想返回“clicked.name”值,让我们在链接触发onclick事件时在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”而不是点击的链接名称。
答案 0 :(得分:0)
看起来你可以使用Awesomium的JSObject.bind
方法从JavaScript调用C#方法。一种典型的方法是公开一个JavaScript全局对象,其中包括所有“桥接”方法(即:在C#和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>