在WebBrowser控件中,window.external不可用

4
我想在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
当按下时,window.external.notify 从未被调用。实际上,window.external 不可用。 我想从WebBrowser控件中调用window.external.notify函数以调用 WebBrowserForDetails_ScriptNotify 方法。我该怎么办? 编辑 参考链接:MSDN:window.external.notify有没有办法动态设置WP7 Webbrowser控件的高度并锁定滚动?在Windows Phone 7中显示HTML内容

1
我猜你指的是 Windows-Phone-7,而不是 Windows-Mobile。为了以后参考,我们更喜欢 stackoverflow 的问题内容实际上包含一个问题。你的陈述只是事实陈述。 - AnthonyWJones
@AnthonyWJones 是的,我在谈论WP7。我还编辑了问题,使其成为一个问题。感谢您的评论 :) - Seyeong Jeong
3个回答

1

我怀疑您的问题是由于没有提供有效的HTML5文档,因为您的(body & html)元素没有关闭。


+1 对于最后一点的赞同,但是你需要更仔细地阅读问题中的代码,你前两点都不正确。 - AnthonyWJones
这不是HTML5文档。我没有声明文档类型:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">。根据HTML4规范(以及HTML5规范),您不需要关闭body和html标签。尽管我放了结束标签,但仍然无法获取到window.external的值:( - Seyeong Jeong


0

你的代码看起来没问题,但是window.external.notify()方法需要传入字符串参数,而不是整数。尝试使用window.external.notify('123')调用。 希望这可以帮到你。


问题在于 window.external 返回的是空值,所以我甚至无法使用 window.external.notify - Seyeong Jeong
这是一个对我有效的测试项目:http://www.fileserve.com/file/BhVhMAZ/HTML.zip - Ku6opr
文件不再可用...请提供代码或新链接! - 70sCommander
抱歉,我没有这个项目的副本。主题项目之间的主要区别是将数字作为字符串传递--> '123'。 - Ku6opr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接