C# WebView 不理解 JavaScript 调用 alert()(Windows 8 XAML 应用程序)

C# WebView Doesn't Understand JavaScript Call of alert() (Windows 8 XAML Application)

本文关键字:Windows XAML 应用程序 alert WebView 不理解 JavaScript 调用      更新时间:2023-09-26

我正在用C#和XAML编写一个Windows 8应用程序,该应用程序在WebView中承载网页。 网页调用 alert() 和 confirm(),但 WebView 会抛出异常,指出"'alert' is undefined"或"'confirm' is undefined"。 可以启用 alert() 和 confirm() 吗,还是我需要编写代码来模拟它们的正常功能? 如果我需要自己写它们,我应该如何开始这样的工作? 谢谢。

警报和确认在 Web 视图中不起作用。 可以使用 WebView.ScriptNotify 从页面上的脚本接收事件,并使用该事件通过 MessageDialog 类显示对话框。

在需要警报的脚本中...

window.external.notify('foo');

并在 C# 中使用 WebView.ScriptNotify 方法中的示例。

您需要执行一些解决方法。我这样做了,它对我有用。

       window.alert = function(__msg){window.external.notify(' + __msg + ');};

在这里参考我的Windows Phone的类似问题

您需要编写代码来启用它们。请注意,在 HTML5 Win8 应用和 XAML 中都是如此。

对于可以访问 WinRT 的脚本,可以使用 Windows.UI.Popup.MessageDialog:

(new Windows.UI.Popup.MessageDialog("Hello!", "Welcome")).showAsync().done(dismissedHandler)

请注意,这些是异步的,而不是块执行。

为了从用户那里获取信息——例如,从用户那里输入的文本,没有什么标准,你需要为此创建一组新的标记。