2011-05-28 55 views
11

Ok, tôi đang sử dụng khung nội tuyến trên một trang. Nội dung trong khung nội tuyến mà tôi không có quyền kiểm soát và đang được sử dụng với chương trình Adobe Flash. Nhưng một khi biểu mẫu được tổng hợp trong khung nội tuyến (một lần nữa mà tôi không có quyền kiểm soát), nó sẽ tải lên một TRANG, tôi KHÔNG CÓ KIỂM SOÁT, nhưng có trang đó trong IFRAME thay vì nó thoát khỏi khung nội tuyến trên trang đó. Làm cách nào để thoát khỏi iframe trên trang đó?Cần phải thoát khỏi iframe sau khi nội dung trong iframe được gửi

Tôi giả định rằng một số Javascript là cần thiết, nhưng mã này là không tốt:

if (top.location != self.location) { 
top.location = self.location; 
} 

Sử dụng mã này tải lên trang index chính cho trang web. Tôi cần nó để tải trang sau khi biểu mẫu được gửi và thoát ra khỏi nó. Một lần nữa, tôi có quyền truy cập vào trang được tải trong khung nội tuyến sau khi biểu mẫu được gửi trong khung nội tuyến.

Hãy giúp tôi.

Có lẽ một cách phức tạp để thực hiện nó là có liên quan? Ví dụ trong khi trang đang được tải? Hoặc bằng cách nào đó kiểm tra xem iframe đã được gửi chưa? Tôi kiểm soát cả hai trang trên trang web của mình (Trang giữ khung nội tuyến ban đầu và trang mà khung nội tuyến được gửi đến), không chỉ nội dung iframe.

Cảm ơn :)

+0

Bạn đang đặt mã trong các trang bên ngoài hoặc trong trang của iframe? Ngoài ra, bạn có thể chạy vào một vấn đề an ninh gây ra bởi các trang bên ngoài và bên trong có tên miền khác nhau? – ErikE

Trả lời

11

Tôi tin rằng bạn muốn điều này

if(this != top){ 
    top.location.href = this.location.href; 
} 

Để chia nhỏ

Nó có thể cần tham khảo tài liệu quá ... Tôi không ở một máy tính để kiểm tra.

if(this != top){ 
    top.document.location.href = this.document.location.href; 
} 
+0

Tôi nên đặt mã đó ở đâu? Trong đầu? Làm thế nào để nó biết 'cái này' là gì? Hoặc 'top' nằm trong Javascript là gì? Nó sẽ tự động biết nó, hay nó phải được xác định? – SoLoGHoST

+0

tính năng này KHÔNG hoạt động, nó vẫn đưa tôi đến chỉ mục trang web thay vì URL mà khung nội tuyến đi đến. – SoLoGHoST

+0

URL của trang là gì? và chỉ có một khung hình? Tôi hỏi vì tôi đã sử dụng mã này hàng chục lần và tôi biết nó hoạt động. Có, bạn có thể đặt nó trong đầu hoặc trong cơ thể ... trên cùng là một tham chiếu toàn cục đến cửa sổ trên cùng, và điều này tự động tham chiếu đến cửa sổ "này". PS Tôi có thể có hơi bị trầy xước một chút, nó có thể cần 'tài liệu' trong tên đầy đủ. – scunliffe

1

gì làm việc cho tôi là:

(function() { 
    'use strict'; 
    console.log('window.top.location', window.top.location); 
    console.log('window.location', window.location); 

    if (window.location !== window.top.location) { 
     window.top.location = window.location; 
    } 
})(); 

Lấy cảm hứng từ https://css-tricks.com/snippets/javascript/break-out-of-iframe/

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