我正在尝试使用WP7中的网页浏览器控件在网页中使用javascript显示提醒框。警报没有弹出。代码中有什么问题,或者WP7根本不支持它吗?
< phone:WebBrowser Name =“browser”IsScriptEnabled =“True”ScriptNotify =“browser_ScriptNotify” 源= “default.html中”/>
在Default.html内部
<html><br>
<head><br>
</head><br>
<body onload="onLoad()"><br>
<script type="text/javascript"><br>
function onLoad() {<br>
alert("hello");<br>
}<br>
</script><br>
</body><br>
</html>
答案 0 :(得分:2)
您是否可以加载default.html资源?首先看一下http://blogs.msdn.com/b/dohollan/archive/2010/08/25/adventures-with-the-windows-phone-7-webbrowser-control.aspx。
更新以包含如何实现预期效果的示例代码:
HTML:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" >
function ShowNameAlert(name) {
window.external.notify("Hello " + name);
}
</script>
</head>
<body onload="ShowNameAlert('Jojo');">
Bla bla
</body>
</html>
C#代码隐藏:
private void SomeBrowser_ScriptNotify(object sender, NotifyEventArgs e)
{
MessageBox.Show(e.Value);
}
XAML:
<phone:WebBrowser x:Name="SomeBrowser" ScriptNotify="SomeBrowser_ScriptNotify" IsScriptEnabled="True" Source="test.html"/>
答案 1 :(得分:1)
这就是我解决它的方法,我将javascript注入到我导航的网页上,并覆盖警报并确认框
window.alert = function(__msg){window.external.notify(' + __msg + ');};
然后在脚本中通知函数使用MessageBox显示该消息。我希望它也有助于其他人。之前的答案是一种解决方法,这是我认为正确解决我的问题的方法