2011-11-09 35 views
8

Tôi đã thấy một số giải pháp thanh lịch về tìm nạp tài liệu gốc từ iframe - ví dụ: this one. Tuy nhiên, tôi không thể làm cho nó hoạt động - và tôi không nghĩ rằng điều này là có thể do các vấn đề về chứng khoán (cross scripting?)?Lấy tài liệu của cha mẹ từ iFrame

Câu hỏi của tôi là; Tôi vẫn có thể truy cập tài liệu của cha mẹ từ bên trong khung nội tuyến - hay điều này đã thay đổi những năm gần đây? Nếu tôi có thể truy cập điều này; bất kỳ suy nghĩ nào về lý do tôi bị vô hiệu khi in parent.document hoặc window.parent.document từ nội dung của khung nội tuyến?

+0

'window.top' thường hoạt động. – Salman

Trả lời

19

Vẫn có thể truy cập cha mẹ từ trong một khung với điều kiện các miền khớp với.

Ví dụ, có một cái nhìn tại các fiddles:

.210

Bạn có thể truy cập thông qua cha mẹ:

window.parent 
parent 
top   //If the parent is the top-level document 
window.top 

Các biến parenttop có thể được ghi đè (thường không có ý định). An toàn hơn để sử dụng window.parent để an toàn hơn. Ngoài ra, bạn có thể thay thế window theo document.defaultView.

+0

Thx! Các miền không khớp, do đó, đó rõ ràng là một vấn đề. Bây giờ bạn nói nó tôi biết rằng tôi đã đọc về điều này một thời gian trở lại. Khi các miền không khớp, bạn không thể truy cập tài liệu của cha mẹ. Vì vậy, vấn đề của tôi không thể được giải quyết khi nội dung đóng khung nằm trên các miền khác nhau. Đúng? – stiank81

+0

Có một số thủ thuật để giao tiếp trên các miền khác nhau. Hãy xem [bài viết dài này] (http://softwareas.com/cross-domain-communication-with-iframes). Nếu cả hai trang được phân phối ở cùng một tên miền, nhưng với một tên miền phụ khác, hãy đặt ['document.domain'] (https://developer.mozilla.org/en/DOM/document.domain) sẽ trợ giúp. Nếu không, nếu bạn là chủ sở hữu của cả hai trang web, bạn có thể triển khai ['window.postMessage'] (https://developer.mozilla.org/en/DOM/window.postMessage). –

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