2012-02-13 17 views
11

Tôi đang tải một trang vào iframe. Cả hai trang đều nằm trên cùng một miền. Tôi muốn trang được tải để thực hiện chức năng js cụ thể chỉ khi nó đã được tải vào khung nội tuyến. Điều này có thể không?Là một trang, tôi có thể cho biết mình đã được tải vào iframe bằng javascript hay không?

Tiền thưởng: nó có thể được thực hiện trong jQuery không?

Cảm ơn

+2

Điều này nghe giống như một công việc cho thủ thuật "Self == top'" của Circa 1997 – Jamiec

+2

có thể trùng lặp [Cách xác định xem trang web đang được tải bên trong khung nội tuyến hay trực tiếp vào cửa sổ trình duyệt ?] (http://stackoverflow.com/questions/326069/how-to-identify-if-a-webpage-is-being-loaded-inside-an-iframe-or-directly-into-t) – Sjoerd

Trả lời

22

hoặc chỉ:

var isEmbed = window != window.parent; 
-1

Bạn có thể sử dụng sự kiện iframe của onload:

<html> 
<head> 
<script type="text/javascript"> 
function load() 
{ 
alert("Iframe is loaded"); 
} 
</script> 
</head> 

<iframe onload="load()" src="/page.html"> 
</iframe>  
</html> 
+0

câu trả lời không rõ ràng ? anh ta nên đặt mã ở đâu? btw mã của bạn vẫn chưa được định dạng. –

+0

Tôi đã cập nhật đánh dấu câu trả lời. –

9

lẽ là phương pháp đơn giản nhất:

if (self !== top) { 
    // you're in an iframe 
} 

Vì vậy, bạn kiểm tra xem chiến thắng hiện tại dow là cửa sổ trên cùng ...

+0

Làm việc cho tôi :) – afro360

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