无法在WP7 Web浏览器控件中通过Javascript显示警报

时间:2012-08-07 10:06:50

标签: javascript windows-phone-7 windows-phone-7.1 windows-phone windows-phone-7.1.1

我正在尝试使用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>

2 个答案:

答案 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显示该消息。我希望它也有助于其他人。之前的答案是一种解决方法,这是我认为正确解决我的问题的方法