2009-02-12 16 views
6

Ich arbeite an einer Webseite, die einen iframe hat und ich lade eine externe Website in den iframe. Die Seite funktioniert gut in IE6, FF etc, aber in IE7 sehe ich nur eine leere Seite.IE7 iframe leere Seite

Ich fand, dass dies aufgrund des Phishing-Filters in IE7 ist. Der Phishing-Filter kann die Webseite im Iframe nicht überprüfen, sodass sie nicht ordnungsgemäß gerendert wird. Haben Sie sich schon einmal mit diesem Problem konfrontiert? Wie kann ich es lösen?

Bearbeiten: Okay. Nachdem ich die ersten zwei Antworten gesehen habe, denke ich, dass ich das mehr erklären sollte. Die Seite ist für die Zahlungsabwicklung und ich lade eine Seite (eines Drittunternehmens), die nach Kreditkarteninformationen fragt. Gleich nach dem Eingeben der Details und dem Drücken von Weiter wird der Iframe leer. Nach vielen Nachforschungen haben wir festgestellt, dass IE7 keine Cookies von Drittanbietern akzeptiert (wenn die Seite in iframe geladen ist). Es hat etwas mit den Sicherheitseinstellungen zu tun. Einige Artikel im Internet sagen, dass ich den Phishing-Filter umgehen kann. Wie kann ich es tun?

Antwort

4

Wenn Sie ASP verwenden dann diesen Code hinzufügen

Response.AddHeader "p3p", "CP=" & chr(34) & "CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR" & chr(34) 

auf allen Seiten, die in dem iframe geladen werden

+10

Verwenden Sie die angegebene P3P-Zeichenfolge nicht blind. Ermitteln Sie Ihre eigene P3P-Datenschutzerklärung. Lesen Sie http://www.p3ptoolbox.org/guide/ für Details. – Anirvan

2

Haben Sie das IFRAME-Attribut WIDTH gesetzt? Ich habe darüber schon einmal gelesen und in diesen Fällen mit dem Attribut 'WIDTH' zu tun gehabt.

Anstatt also das WIDTH-Attribut des IFRAME verwenden, könnten Sie das STYLE-Attribut statt:

<IFRAME SRC='yourpage.html' STYLE='width:100%;'></IFRAME> 

[UPDATE]
In meinem obigen Beispiel habe ich ein% -Satz verwendet das erklären Breite des IFRAME. Sie könnten versuchen, es in Pixel zu erklären, statt prozentuale, z.B .:

<IFRAME SRC='yourpage.html' STYLE='width:600px;'></IFRAME> 

Dann wieder, das ist nicht das Problem in Ihrem Fall sein könnte, aber bitte weitere Informationen liefern.

+1

Als ich jetzt im Startpost lesen, hat es etwas mit Cookies von Drittanbietern zu tun. Ich werde meine Antwort für weitere Referenz hinterlassen ... – RuudKok

0

Vielleicht verwenden Sie einen Titel-Tag wie < TITEL/>

3

IE7 akzeptiert keine 3rd-Party-Cookies (wenn Seite in Iframe geladen).

Es kann, es hängt von den Optionen ab, die festgelegt sind. Vor allem, wenn die Datenschutzstufe aufgedeckt wurde, muss die dritte Partei eine P3P-Richtliniendatei bereitstellen, um sicherzustellen, dass der IE nicht unartig ist. (Als Privatsphäre misst dies ein bisschen einen Blindgänger ist IMO, aber wir sind mit ihm stecken.)

ich einer Seite bin Laden (ein 3rd-Party-Unternehmen), die für Kreditkarten-Informationen fragt.

Whoah! Tu das nicht. Der Benutzer kann in der Adressleiste nicht sehen, dass es sich um die richtige Website-URL handelt und diese ordnungsgemäß mit SSL verschlüsselt ist. Sie bitten Ihre Kunden, einer unbekannten Site und Verbindung zu vertrauen.

Den Iframe verlieren. Die meisten Zahlungsprozessoren haben Optionen, um Ihre Zahlungsseiten so anzupassen, dass sie Ihrer Website entsprechen, und den Nutzer nach Abschluss der Website auf Ihre Website zurückzuliefern.

+0

Ja, ich stimme zu !! Aber wir haben keine andere Option, als jetzt einen iframe zu verwenden. Die Seite wird entsprechend unserem Design neu gestaltet. Ich habe versucht, den p3p-Header hinzuzufügen und es zeigt immer noch die "Cookie" -Blockierung! – Shoban

+0

Es muss der Drittanbieter (Zahlungsprozessor) sein, der die P3P-Richtlinie den eigenen Seiten hinzufügt, fürchte ich. – bobince

1

Endlich habe ich die Lösung dafür gefunden!

Es kann durch Hinzufügen der p3p-Header auf der Webseite gelöst werden. Dies teilt dem Browser mit, dass der Cookie, der von den Seiten im iframe erstellt wurde, für die Privatsphäre des Benutzers in Ordnung ist. Der Header muss zu allen im iframe geladenen Seiten hinzugefügt werden.

Unten finden Sie einige Links, die zeigen, wie dies in verschiedenen Skriptsprachen (PHP, ASP.net, JSP usw.) erreicht werden kann.

http://adamyoung.net/IE-Blocking-iFrame-Cookies

http://adamyoung.net/IE-Blocking-iFrame-Cookies

http://admon.org/node/99

Anmerkung: Ich vermöge diese Lösung für Sicherheits- und Compliance-Gründen. Dank bobince