【问题标题】:WP8.1 InvokeScript ErrorWP8.1 调用脚本错误
【发布时间】:2014-07-07 13:01:43
【问题描述】:

我正在开发一个 Windows Phone 8.1 应用程序。我对 WebBrowser 类的 InvokeScript 方法有疑问。 我的 XAML 中有这个:

当我运行这段代码时:

myWebBrowser.Loaded += (object sender, RoutedEventArgs e) =>
{
    webBrowser.IsScriptEnabled = true;
    webBrowser.InvokeScript("eval", "alert('foo')");
};

我在 InvokeScript 的行上得到一个 System.SystemException,告诉我这个:

发生未知错误。错误:80020006。

当我为 Windows Phone 8(不是 8.1)运行相同的代码时,我没有收到异常。

知道为什么我在使用 WP 8.1 时会出错吗?

【问题讨论】:

  • 它是 DISP_E_UNKNOWNNAME,“未知名称”。 MSDN 库文章中的注意事项:“InvokeScript 可能已更改或不适用于 Windows 8.1 之后的版本。改为使用 InvokeScriptAsync。”第二个参数必须是 string[],而不是 string。

标签: c# invokescript


【解决方案1】:

我找到了解决方案here

Loaded 事件调用过早。我改用了 LoadCompleted 事件。只要我导航到某个东西(我一直在放置 webBrowser.NavigateToString(""); ),只有在 WebBrowser 控件完全加载内容时才会调用 LoadCompleted 事件。

这是新代码:

webBrowser.LoadCompleted += (object sender, NavigationEventArgs e) =>
{
    webBrowser.IsScriptEnabled = true;
    webBrowser.InvokeScript("eval", "alert('foo');");
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多