2010-06-18 18 views
6

Esto parece muy simple, pero ¿cómo puedo llamar a una función javascript que está definido en el código HTML de nivel superior, a partir de un marco secundario?cómo llamar a una función javascript en el marco superior?

top html doc 
- 1st level frame 
    - 2nd level frame 

my top html doc tiene una función llamada testFn(). En el marco de 2º nivel, tengo un botón con onclick="top.testFn();", pero esto no llama a testFn(). En Firebug, si uso un reloj para ejecutar top.testFn();, dice TypeError: testFn() no es una función.

En caso de todo esto sólo funcionará - en cuyo caso se trata de un problema con mis documentos, o hay alguna otra forma de llamar a las funciones de la ventana de nivel superior?

+0

Están todos los documentos involucrados en el mismo dominio y el protocolo? –

Respuesta

4

su código sea correcto. Si dice testFn() is not a function, entonces tal vez no lo es. ¿Usted ha intentado fijar onload="testFn();" en el <BODY> de su marco superior para asegurarse de que funciona?

podría haber algún error de JavaScript que conduce a la creación de su código de función testFn no se finaliza con éxito.

2

¿Ha intentado llamar así:

onclick="parent.parent.testFn();"

estoy suponiendo que tiene la segunda trama dentro de la primera trama.

+0

Gracias - Resulta que fue solo un error en otro lugar de la página. – Rory

0

En realidad, eso es exactamente cómo lo hace.

El truco es no tener un error de sintaxis en el código JavaScript en esa página HTML de nivel superior en otros lugares :-)

Cuestiones relacionadas