1

我正在用 C# 构建一个使用 WebBrowser 控件的应用程序。这是加载一个特定页面(我没有创建),该页面使用一个弹出窗口和一个 cookie,该 cookie 确定最后搜索的“ID”是什么。这一切都很好,除非在后台打开 Internet Explorer。当 Internet Explorer 在后台打开时,弹出窗口只会转到第一个设置的 ID。当 IE 打开时,cookie 似乎没有正确存储。

分解:

  • 用户打开 Internet Explorer。
  • 用户打开我的应用程序。
  • 用户在页面上搜索 XXX。
  • 用户单击弹出窗口。弹出窗口显示正确的信息。
  • 用户在父页面上搜索 XXY。
  • 用户单击弹出窗口。弹出窗口显示以前的信息(不正确)。

正如我所说,当 Internet Explorer 未打开时,这可以正常工作。

有谁知道这可能是什么原因或如何预防?也许 Internet Explorer 正在“锁定”它的 cookie?

4

1 回答 1

1

正如我经常做的那样,我在写问题时发现了问题。这恰好是安装 IE8 时特定于 WebBrowser 控件的缓存问题。

该线程建议在导航之前清除 URL 的缓存。使用以下代码:

using System.Runtime.InteropServices;
...
[DllImport("wininet.dll", SetLastError = true)]
private static extern long DeleteUrlCacheEntry(string lpszUrlName);

然后你可以使用

DeleteURLCacheEntry(pdfURL);
webBrowser.Navigate(pdfURL);
于 2013-05-22T20:26:05.677 回答