2012-03-23 49 views
5

Tôi có một div có iframe trong đó và iframe tải trang từ một trang web khác (tên miền chéo). Khi trang tải trong firefox, nó hoạt động tốt và hiển thị trang có khung nội tuyến trong div. Tuy nhiên, trong Chrome, Chrome sẽ tự động chuyển hướng đến URL iframe khi trang tải. Bất kỳ ý tưởng nào tại sao điều này đang xảy ra và nếu có thể làm những gì tôi đang cố gắng thực hiện trong Chrome?Tại sao Chrome chuyển hướng đến URL của tải iframe?

Lưu ý: Tôi không cố gắng thực hiện bất kỳ liên lạc tên miền chéo nào, chỉ muốn cho phép người dùng truy cập trang web khác từ bên trong một trang trên trang web của tôi. Điều này cũng xảy ra trong Safari, vì vậy có lẽ đó là một điều webkit.

+0

Điều đó có xảy ra trên mọi url không? Có thể trang web cụ thể này có mã "thoát khỏi khung nội tuyến"? – hamczu

+0

Không, không. Vâng, tôi nhận ra rằng một thời gian ngắn sau khi tôi đăng này, một số URL từ các tên miền khác hoạt động, vì vậy nó phải là như vậy. Tôi không chắc làm thế nào được thực hiện vì vậy tôi không biết những gì để tìm kiếm, nhưng tôi có thể tìm ra nó. – paul

+0

Trả lời cho cả hai câu hỏi của bạn: http://stackoverflow.com/questions/4002712/is-it-possible-to-prevent-iframe-content-from-escaping-into-main-page-using-js – hamczu

Trả lời

8

Khung nội tuyến bằng sandbox có thể là giải pháp cho sự cố của bạn. Nó được Safari và Chrome hỗ trợ và sẽ không ảnh hưởng đến Firefox . Bạn có thể sử dụng nó như vậy:

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

Bằng cách không thêm allow-top-navigation vào đó bạn đang ngăn chặn khung nội tuyến chuyển hướng toàn bộ trang. Bạn có thể đọc thêm về nó trên W3C.org.


Bắt đầu từ phiên bản 17, Firefox cũng hỗ trợ iframe sandbox.

+0

giải quyết vấn đề của tôi đẹp, cảm ơn nhiều! – Vimvq1987

+0

Cảm ơn người đàn ông, bạn đã cứu ngày của tôi :) –

Các vấn đề liên quan