在WebBrowser控件中,窗口.外部不可用

本文关键字:外部 窗口 WebBrowser 控件 | 更新日期: 2023-09-27 18:15:47

我想在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,有没有办法设置WP7浏览器控制高度动态和锁定滚动?在Windows Phone 7中显示HTML内容

在WebBrowser控件中,窗口.外部不可用

我怀疑你的问题是由于没有提供有效的HTML5文档作为你的(body &

你的代码似乎是正确的,但是window.external.notify()方法是字符串参数,而不是整数。请尝试调用window.external.notify('123')。

首先你可能想读一下Mike Taulty对离线浏览器内容的评论。

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2011/06/22/silverlight-html-and-the-webbrowser-control-for-offline-apps.aspx