2013-03-22 33 views
5

Đây là tình huống: Tôi có cùng tên miền, một iframe bên trong trang web của tôi. hiện tại, tôi không có quyền truy cập ngay vào mã khung nội tuyến về vấn đề triển khai.ngăn iframe chuyển hướng trang mẹ

khi iframe tải, mã bên trong sẽ phát hiện thứ gì đó kích hoạt chuyển hướng trên trang gốc. Tạm thời, tôi muốn xóa nó. Tôi biết tôi có thể sử dụng onbeforeload, nhưng một cảnh báo sẽ được hiển thị mỗi khi người dùng nhấp vào một liên kết bất kỳ.

Có cách nào tôi có thể phát hiện chuyển hướng không? nó xảy ra trước khi trang chính được tải đầy đủ.

Tôi googled nó rất nhiều nhưng vẫn không có giải pháp làm việc.

Cảm ơn!

+0

Không chắc chắn nếu công trình, nhưng bạn có thể thử các thuộc tính html5 mới "sandbox", http: // webdesign .about.com/od/html5tags/p/sandbox-attribute.htm – aNewStart847

+0

http://stackoverflow.com/questions/369498/how-to-prevent-iframe-from-redirecting-top-level-window có thể hữu ích công cụ, nếu bạn chưa thấy nó. –

Trả lời

0

Sử dụng sự kiện onbeforeunload để yêu cầu người dùng rời khỏi trang này hoặc ở lại.

<script> 
    window.onbeforeunload = function(){ 
     return false; // This will stop the redirecting. 
    } 
</script> 

Câu trả lời của tôi dựa trên câu trả lời từ câu trả lời trong Stackoverflow !!!

+2

Cụ thể được gọi trong bài đăng gốc dưới dạng nội dung mà OP không muốn –

-3

Đó là một chút của một hack xấu xí, nhưng đây là một cái gì đó mà có thể làm việc (Tôi thừa nhận tôi không biết rất nhiều về workign của iframe). Lấy trang bạn muốn đưa vào khung nội tuyến thông qua javascript. Sử dụng javascript để phân tích cú pháp thông qua nó cho đến khi bạn nhận được mã chuyển hướng và loại bỏ mã chuyển hướng đó ra. Sau đó đặt kết quả vào khung nội tuyến. Ugly lúc tốt nhất, nhưng nó có vẻ như nó có thể làm việc.

5

Sau khi đọc w3.org spec. Tôi tìm thấy một giải pháp khác.

Bạn có thể đặt sandbox="", ngăn chặn iframe chuyển hướng. Điều đó đang được nói rằng nó sẽ không chuyển hướng iframe. Bạn sẽ bị mất nhấp chuột về bản chất.

Ví dụ ở đây: http://jsfiddle.net/ppkzS/1/
Ví dụ mà không sandbox: http://jsfiddle.net/ppkzS/

2

Hãy thử điều này:

<iframe align="left" src="http://stackoverflow.com/" sandbox=""></iframe>' 
Các vấn đề liên quan