2011-02-04 18 views
6

Necesito saber si el elemento document es el nodo ROOT de la página. Por ejemplo:Verificar si el documento es ROOT node

<html> <-- ROOT Node 
    <head></head> 
    <body> 
     <iframe> 
     <html>...</html> <-- other document 
     </iframe> 
     <iframe> 
     <html>...</html> <-- other document 
     </iframe> 
    </body> 
</html> 

Javascript que se ejecuta en el iframe 1 o 2 debe saber si su nodo de documento es el nodo raíz.

Espero que me puedas ayudar.

Respuesta

11

Usted debe ser capaz de hacer esto con top:

if (window.top.document === window.document) { 
    // we're in the outermost window 
} 
+0

1, pero 'top.document === ventana .document' es suficiente, 'window.top' es solo una forma más lenta de' top' –

+0

@Martin True, pero prefiero ser explícito. Puedo imaginar una circunstancia en la que nombraría una variable 'top'. – lonesomeday

+0

Bueno, podrías intentarlo, pero en la mayoría de los navegadores, si intentas asignar un valor a 'top', se ignorará o arrojará un error. Además, la ventana es solo un pseudo objeto que apunta al espacio de nombre global de ese cuadro, por lo que ser explícito como lo llamas, es solo tomar el camino más largo, algo así como hacer turismo en lugar de usar la autopista. –

0

Sospecho que, dado el contenido de un documento diferente, todos ellos informarán como el nodo raíz. Es mejor que compruebe si document.parent es nulo o no.

0
if (window == window.parent) { 
    alert("I'm not in a frame"); 
} 
0

hacer una función en el documento de la parte superior que devuelve es rootNode, a continuación, llamar a esta función desde sus documentos iframe utilizando el window.top referencia:

en el documento arriba:

function getRootNode() 
{ 
//returns the rootNode 
} 

I n sus documentos iframe:

var rootNode = window.top.document.getRootNode(); 
0

probar este:

if(currentnode.parentNode == null) { alert("is root node") } 

// donde currentnode es el nodo que se va a seleccionar

Cuestiones relacionadas