2012-03-23 3 views
5

Ich habe ein div mit einem iframe, und der iframe lädt eine Seite von einer anderen Seite (domänenübergreifend). Wenn die Seite in Firefox geladen wird, funktioniert es gut und zeigt die Seite mit dem iframe im div. In Chrome wird es jedoch beim Laden der Seite automatisch zur iframe-URL umgeleitet. Irgendeine Idee, warum das passiert und wenn es möglich ist, das zu tun, was ich in Chrome machen möchte?Warum leitet Chrome die URL von iframe onload um?

Hinweise: Ich versuche keine domänenübergreifende Kommunikation durchzuführen, sondern möchte Benutzern Zugriff auf die andere Website innerhalb einer Seite auf meiner Website gewähren. Das passiert auch in Safari, also ist es vielleicht eine Webkit-Sache.

+0

Kommt es auf jeder URL vor? Vielleicht hat diese eine bestimmte Seite einen "Escape-from-iframe" -Code? – hamczu

+0

Nein, tut es nicht. Ja, ich habe bemerkt, dass eine Weile nachdem ich das gepostet habe, bestimmte URLs von anderen Domains funktionieren, also muss es so sein. Ich bin mir nicht sicher, wie das geht, also wusste ich nicht, wonach ich suchen sollte, aber ich kann es herausfinden. – paul

+0

Beantworten Sie beide Fragen: http://stackoverflow.com/questions/4002712/is-it-possible-to-prevent-iframe-content-from-escaping-into-main-page-using-js – hamczu

Antwort

8

Sandboxed iframe kann eine Lösung für Ihr Problem sein. Es wird sowohl von Safari als auch von Chrome unterstützt und wirkt sich nicht auf Firefox aus. Sie können es wie so verwenden:

<iframe sandbox="allow-forms allow-same-origin allow-scripts" src="http://stackoverflow.com"></iframe> 

Durch nicht das Hinzufügen allow-top-navigation gibt Ihnen einen Iframe verhindern die ganze Seite zu umleiten. Sie können mehr darüber auf W3C.org lesen.


ab Version 17, Firefox unterstützt auch Sandbox iframe.

+0

löse mein Problem schön, vielen Dank! – Vimvq1987

+0

Danke Mann, du hast meinen Tag gerettet :) –