无法通过WP7 web浏览器控件中的Javascript显示警报
我试图在WP7中使用web浏览器控件在网页中使用javascript显示警报框。警报没有弹出。代码中是否有任何错误或WP7根本不支持它 内置Default.html无法通过WP7 web浏览器控件中的Javascript显示警报,javascript,windows-phone-7,windows-phone-7.1,windows-phone,windows-phone-7.1.1,Javascript,Windows Phone 7,Windows Phone 7.1,Windows Phone,Windows Phone 7.1.1,我试图在WP7中使用web浏览器控件在网页中使用javascript显示警报框。警报没有弹出。代码中是否有任何错误或WP7根本不支持它 内置Default.html <html><br> <head><br> </head><br> <body onload="onLoad()"><br> <script type="text/javascript"><br>
<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>
函数onLoad(){
警报(“你好”);
}
您是否能够加载default.html资源?先看一看
更新内容包括如何实现预期效果的示例代码:
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>
XAML:
<phone:WebBrowser x:Name="SomeBrowser" ScriptNotify="SomeBrowser_ScriptNotify" IsScriptEnabled="True" Source="test.html"/>
我就是这样解决的,我将javascript注入到导航到的网页中,并覆盖了警报和确认框
window.alert=函数(_msg){window.external.notify('+_msg+');}代码>
然后在脚本通知功能中,使用MessageBox显示该消息。我希望它也能帮助别人。前面的答案是一个解决方法,我认为这是解决问题的正确方法页面打开正常,但警报不太好。我也试图让警报显示出来,但没有成功。我猜这可能与视觉构图有关。这就是window.prompt通常呈现在窗口对象的顶部,但由于它现在嵌入到silverlight应用程序中,因此存在一些策略问题,无法实现这一点。(顺便说一句,ScriptNotify用于浏览器到silverlight的通信,因此这不是让警报正常工作的桥梁。如果您想知道如何使用ScriptNotify的示例代码,那么我可以在这里编写)谢谢,但我知道怎么做。谢谢你的回答,我已经试过了。只是想知道代码或WP7策略是否有任何问题。尽管如此,您的ans仍然是正确的;)我认为回答问题的人很难真正理解他们的解决方案是可行的还是正确的。至少对我来说,你上面的建议也是一个解决办法,因为你正在修改你导航到的页面的内容,以适应你的应用程序的账单。简而言之,花时间理解人们的要求并编写测试解决方案、接受这些解决方案(视为正确)然后拒绝这些解决方案并没有什么激励作用。我希望您能看到,在您的案例中,您所做的只是将我的示例中的ShowNameAlert别名为window.alert!我希望你能将你对我的解决方案的决定回复为一个答案:)你的解决方案也是正确的,但在这种情况下,我不得不修改我不想修改的html页面(这不是我的优先事项)。通过研究发现,我能够通过.cs代码将JS添加到html页面。对于我的问题,这证明是正确的。这就是为什么我改变了这个答案。虽然我很感激你的回答是对这个答案的补充。感谢您的帮助:)问题的解决方案不是注入Javascript。这只是解决方案解决方案的一种交付机制。另一种交付机制是修改HTML页面。问题是警报没有显示,我解释了为什么它没有显示,以及如何通过消息框获得效果。如果您问我如何在不改变页面的情况下将变通方法传递到浏览器控件的内容中,那么我会告诉您。好吧,这是令人失望的,让我们就此为止;)也许我的问题有误,谢谢格罗斯的帮助。我会记住下一个问题,我会发布一个问题来描述所有的场景。谢谢:)
<phone:WebBrowser x:Name="SomeBrowser" ScriptNotify="SomeBrowser_ScriptNotify" IsScriptEnabled="True" Source="test.html"/>