3

私は 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 でエラーが発生する理由を教えてください。

4

1 に答える 1

5

ここで解決策を見つけました。

Loaded イベントの呼び出しが早すぎます。代わりに LoadCompleted イベントを使用しました。何かに移動する限り (私はwebBrowser.NavigateToString("");を入れています)、LoadCompleted イベントは、WebBrowser コントロールがコンテンツを完全にロードした場合にのみ呼び出されます。

新しいコードは次のとおりです。

webBrowser.LoadCompleted += (object sender, NavigationEventArgs e) =>
{
    webBrowser.IsScriptEnabled = true;
    webBrowser.InvokeScript("eval", "alert('foo');");
};
于 2014-07-08T09:21:54.423 に答える