2013-04-15 31 views
25

Tôi có một mã javascript như thế nàyLấy tham chiếu của đối tượng cửa sổ từ một yếu tố dom

var element = $("elementId"); 

Tôi có tham chiếu đến phần tử (mà là một div).

Bây giờ tôi cần lấy tham chiếu đến cửa sổ trong đó phần tử div này nằm. Nhưng vấn đề là, ở đây $ được chuyển từ một cửa sổ khác. Bây giờ phần tử nằm trong một cửa sổ khác.

Làm cách nào để tham chiếu đến đối tượng cửa sổ có chứa phần tử div này? Xin giúp đỡ.

+3

' $ ("elementId") [0] .ownerDocument.defaultView' –

+0

Tôi không chắc chắn những gì bạn đang yêu cầu. Bạn có thể giải thích 'cửa sổ' cho bạn là gì? Tuy nhiên, nếu bạn đang yêu cầu để có được cha của phần tử, thì 'element.parent()' sẽ làm việc tốt. Ho và nếu 'elementId' là id, bạn nên viết $ ('# elementId') – Brugnar

+0

@RobW Thật tuyệt vời, tôi chưa từng thấy điều đó trước đây. Chỉ cần lưu ý, từ MDN - "Theo quirksmode, defaultView không được hỗ trợ trong IE cho đến khi IE 9." - https://developer.mozilla.org/en-US/docs/DOM/document.defaultView – Ian

Trả lời

56

Nhận một tham chiếu đến nút DOM, sử dụng tài sản ownerDocument để có được một tham chiếu đến các tài liệu, sau đó đọc defaultView tài sản của mình (parentWindow cho IE8-) để có được một tham chiếu đến cửa sổ:

var $element = $('#elementId'); 
var element = $element[0]; 
// Assume that element exists, otherwise an error will be thrown at the next line 
var doc = element.ownerDocument; 
var win = doc.defaultView || doc.parentWindow; 
Các vấn đề liên quan