1

WebBrowser コントロールを利用する C# でアプリケーションを構築しています。これは、ポップアップと、最後に検索された「ID」が何であるかを判断する Cookie を使用する特定のページ (私が作成したものではありません) をロードしています。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 に答える