1

Windows phone 7 用の Web ブラウザーを作成しました。そのページのタイトルと共に閲覧履歴を保存しています。しかし、このコードが原因で、thinkdigit などのやや大きな Web サイトを読み込もうとしたときに. 読み込まれていません。同時に、その特定のコードを削除すると、履歴ページに履歴が記録されません。以下の強調表示されたコードのエラーが表示されます- 「不明なエラーが発生しました。エラー: 80020006」。それは大きなサイトが原因だと思いますか、それともミリ秒を入れる必要がありますか、それとも何をしなければなりませんか??? お疲れ様でした!!!

以下は私がそれに使用したコードです-

private void browsers_Navigated(object sender,System.Windows.Navigation.NavigationEventArgs e)      
{
    pbarWebClient.Visibility = System.Windows.Visibility.Collapsed; 
    if (!fromHistory)
    {
        if (HistoryStack_Index < HistoryStack.Count)
        {
           HistoryStack.RemoveRange(HistoryStack_Index, HistoryStack.Count - HistoryStack_Index);
        }

        HistoryStack.Add(e.Uri);

        if (!app.incognito)
        {
            ********string title = (string)browsers[this.currentIndex].InvokeScript("eval", "document.title.toString()");********----->This is the error.
            stream.WriteLine(title + ";" + e.Uri.ToString());
        }

        HistoryStack_Index += 1;
    }
    fromHistory = false;
    navigationcancelled = false;
    Stop.Visibility = Visibility.Collapsed;
}
4

2 に答える 2

1

eval問題のサイトでオーバーライドされているか、他の方法で抑制されていると思います。

「80020006」はjavascript呼び出しエラーコードです。JavaScript メソッドが利用可能で、どのサイトでも同じように機能すると単純に仮定することは、常に正しいとは限りません。

于 2012-05-14T08:51:31.337 に答える
0

最後に、自分の質問に対する適切な答えを得ました。上記のコードをこれに置き換えるだけです-

            if (!app.incognito)
            {
                Thread.Sleep(100);
                Dispatcher.BeginInvoke(() =>
                {
                    string title = (string)browsers[this.currentIndex].InvokeScript("eval", "document.title.toString()");
                    stream.WriteLine(title + ";" + e.Uri.ToString());
                });
            }
于 2012-05-23T07:48:33.040 に答える