IE7 - meta-refresh im inneren eine HTTPS-IFRAME-Ursachen mixed-content-Warnung

Habe ich eine ASP.NET Anwendung, die das keep-alive-durch die Verwendung von einem versteckten IFRAME mit refresh-header (oder meta-refresh-tag in der Seite).

Für viele, aber nicht alle Instanzen von Internet Explorer (reproduziert, so weit auf IE7 und IE8-beta - aber nicht für alle!) wenn Sie bewegen sich zwischen zwei sicheren Seiten enthalten beide das keep-alive-IFRAME, Sie bekommen so etwas wie diese Abfolge von Ereignissen:

 0s: laden page1.html - enthält keepalive.html Zeitpläne eine Aktualisierung auf 15s 
5s: klicken Sie auf der Seite 2 link 
laden page2.html - enthält keepalive.html Zeitpläne eine Aktualisierung auf 20s 
15s: refresh von Frames auf Seite1 passiert; mixed-content-error-box angezeigt 

Zu diesem Zeitpunkt werden die Fehlermeldung "Diese Seite enthält sowohl sichere als auch nicht sichere Inhalte" im browser angezeigt wird.

page1.html:

<html><head><title>Page 1</title></head><body>
<h1>This is Page 1</h1>
<p><a href="page2.html">Go to Page 2</a></p>
<iframe src="keepalive.html" width="500" height="200" />
</body></html>

Seite 2 ist das gleiche, aber sagt Seite 2, und links auf Seite 1, statt.

keepalive.html:

<html><head>
<meta http-equiv="refresh" content="15" />
</head><body>
<h2>This is the keep alive</h2>
</body></html>

In allen Browsern die ich getestet habe, das ich haben dafür gesorgt, dass die internet-zone hat die Erlaubnis zu tun, ein meta-refresh und eine Eingabeaufforderung festgelegt ist, bei der Anzeige von gemischtem Inhalt. Ich habe gelesen, alle Seiten darauf hindeutet, dass Sie brauchen, um einen src="" - tag auf den IFRAME oder IE halten es für unsicher - by-design hat es eine src-tag, das ist der keep-alive-Seite.

Wenn Sie sitzen auf Seite 1 für immer, der IFRAME aktualisiert in Ordnung. Der Fehler zeigt nur die erste Zeit nach der änderung auf Seite 2.

Ich bin auf der Suche nach einem Weg, um dieses Update mit minimalen Veränderungen: eine bessere Methode für die keep-alive ist, sich eine Steuern & automatisch-erfrischende Bilder, die ich zu untersuchen für zukünftige Versionen. Ein möglicher workaround ist, die ich im Auge habe, ist, dass der Inhalt von dem IFRAME eine regelmäßige XMLHttpRequest an den server, sondern einen meta-refresh. Ein einfacher bugfix wäre noch besser.


Update: ich habe markiert Gewähren Wagners Antwort als richtig, denn es führt mich zum eigentlichen problem: auf der Lenovo-Kennwort-Manager-add-on, CpwmIEBrowserHelper, der diesen Fehler verursacht. Dieser fein säuberlich erklärt, warum einige Leute dieses problem haben und andere nicht, die meisten Leute, die ich fragte, haben die ThinkPads. Deaktivieren Sie die Erweiterung macht das refresh-problem Weg.

Als wir, kann nicht dazu führen, dass jeder, der möglicherweise die Anwendung verwenden, um dieses problem zu beheben, gehen wir mal mit einem javascript-timer und aktualisiert die Fenster " Speicherort aktualisieren keepalive.html Seite wie folgt Aussehen:

<html><head>
<meta http-equiv="pragma" content="no-cache">
</head><body>
<h2>This is the keep alive</h2>
<script type="text/javascript">

  setTimeout ('ReloadPage()', 15000 );

  function ReloadPage() {
     window.location = window.location;
  }

</script>
</body></html>

InformationsquelleAutor crb | 2009-04-02

Schreibe einen Kommentar