我想在WebBrowser控件中调用C#方法。以下是我的代码:
在XAML中,
<phone:WebBrowser Margin="0,0,0,0" Name="WebBrowserForDetails" VerticalAlignment="Top" Height="300" ScriptNotify="WebBrowserForDetails_ScriptNotify" IsScriptEnabled="True" />
在C#中,
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string html = string.Format("<html><head><title></title><script type=\"text/javascript\">{0}</script></head><body><button onclick=\"call();\">Push</button>", "function call(){ window.external.notify(123) ;}");
WebBrowserForDetails.NavigateToString(html);
}
private void WebBrowserForDetails_ScriptNotify(Object sender, NotifyEventArgs e)
{
Debug.WriteLine(e.Value);
}
预计会在调试窗口中看到123
。
推送<button>Push</button>
时,永远不会调用window.external.notify
。实际上,window.external
不可用。我想从WebBrowser控件中调用window.external.notify
函数来调用WebBrowserForDetails_ScriptNotify
方法。我该怎么办?
修改
参考链接:MSDN: window.external.notify
,Any way to set the WP7 Webbrowser control height Dynamically and lock scrolling?和Displaying HTML Content in Windows Phone 7
答案 0 :(得分:1)
我怀疑您的问题是由于未提供有效的HTML5文档,因为您的(body&amp; html)元素未关闭。
答案 1 :(得分:0)
首先,您可能想要阅读Mike Taulty对离线浏览器内容的评论。
答案 2 :(得分:0)
您的代码似乎正确,但window.external.notify()方法采用String参数,而不是Integer。请尝试使用window.external.notify('123')调用。 希望这会有所帮助。