Get

2013-04-15 18 views
25

Ich habe einen JavaScript-Code wie dieseGet

var element = $("elementId"); 

ich den Verweis auf das Element bekam (die ein div ist).

Jetzt muss ich den Verweis auf das Fenster, in dem dieses Div-Element befindet. Aber das Problem ist, hier wird das $ aus einem anderen Fenster übergeben. Jetzt befindet sich das Element in einem anderen Fenster.

Wie erhalten Sie einen Verweis auf das Fensterobjekt, das dieses Div-Element enthält? Pls Hilfe.

+3

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

+0

Ich bin mir nicht sicher, wonach Sie fragen. Kannst du erklären, was ein "Fenster" für dich ist? Wenn Sie jedoch nach dem Elter des Elements suchen, wird 'elemet.parent()' die Arbeit gut machen. Ho, und wenn 'elementId' eine ID ist, sollten Sie $ ('# elementId') schreiben – Brugnar

+0

@RobW Das ist großartig, ich habe das noch nie zuvor gesehen. Nur zu beachten, von MDN - "Nach Default-Modus wird DefaultView im IE bis IE 9 nicht unterstützt." - https://developer.mozilla.org/en-US/docs/DOM/document.defaultView – Ian

Antwort

56

einen Verweis auf den DOM-Knoten erhalten, verwenden Sie die ownerDocument Eigenschaft einen Verweis auf das Dokument zu erhalten, dann lesen Sie seine defaultView Eigenschaft (parentWindow für IE8-) einen Verweis auf das Fenster zu erhalten:

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;