2010-06-28 31 views
5

Tôi đang làm việc trong môi trường khung và cố gắng biết khung hình mà một số mã javascript thực thi là khung trên cùng (khung hình đầu tiên chứa phần còn lại).Làm cách nào để biết khung hiện tại có phải là cha mẹ không?

Cho đến bây giờ tôi đã cố gắng để kiểm tra xem nó với

window.parent != null 

nhưng nó luôn luôn trả về false, như trong ví dụ đơn giản này.

<html> 
<head> 
    <script> 
    alert(parent == null); 
    </script> 
</head> 

<body> 
    <h1>OH YEAH!</h1> 
</body> 
</html> 

Có cách nào để thực hiện việc này không? Tôi không phải di chuyển, ngay bây giờ tôi đang tìm giải pháp IE6.

Trả lời

7

tôi thấy pdf này là rất hữu ích: http://seclab.stanford.edu/websec/framebusting/framebust.pdf

Nói tóm lại, nếu điều này là quá dài để đọc, đây là những gì họ cuối cùng đề nghị:

<style> 
    html { display :none; } 
</style> 
<script> 
if(self==top){ 
    document.documentElement.style.display = 'block'; 
}else{ 
top.location=self.location; 
} 
</script> 

Bạn sẽ tìm thấy nhiều phương tiện khác để làm điều này trong pdf này và mỗi phương tiện 'pro và khuyết điểm. Rõ ràng, trên các trình duyệt không có JavaScript, giải pháp này có thể gây đau đớn;)

1

Bạn có thể kiểm tra xem top.frames.length == 0 hay không.

5
self === top 

phải trả về true nếu được thực hiện trong bộ khung trên cùng, sai khác.

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