1

我已经为 Windows Phone 7 创建了一个网络浏览器。在那里,我还保存了浏览历史记录以及该页面的标题。但是由于这些代码,当我尝试加载像 thinkdigit 等有点大的网站时。没有加载。同时,如果我删除该特定代码,则历史页面中不会记录任何历史。它显示以下突出显示的代码的错误- “发生未知错误。错误: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 回答