2010-06-18 32 views
6

Wydaje się to bardzo proste, ale jak wywołać funkcję javascript zdefiniowaną w html najwyższego poziomu z ramki podrzędnej?jak wywołać funkcję javascript w górnej ramce?

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

mój najlepszy dokument html ma funkcję o nazwie testFn(). W ramce drugiego poziomu mam przycisk z onclick="top.testFn();", ale to nie wywołuje metody testFn(). W Firebug, jeśli używam zegarka do wykonania top.testFn();, mówi TypeError: testFn() nie jest funkcją.

Czy to wszystko po prostu działa - w takim przypadku jest to problem z moimi dokumentami, czy jest jakiś inny sposób wywoływania funkcji w oknie najwyższego poziomu?

+0

Czy wszystkie dokumenty dotyczą tej samej domeny i protokołu? –

Odpowiedz

4

Twój kod wygląda dobrze. Jeśli jest napisane: testFn() is not a function, to być może nie jest. Czy próbowałeś ustawić onload="testFn();" w górnej ramce, aby się upewnić, że działa?

Może wystąpić błąd w javascript, który prowadzi do utworzenia kodu, który uniemożliwia pomyślne zakończenie funkcji testFn.

2

Czy próbowali nazywając go tak:

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

jestem zakładając, że masz 2nd ramki wewnątrz 1 ramy.

+0

Dzięki - okazało się, że to był tylko błąd w innym miejscu na stronie. – Rory

0

Właściwie tak właśnie to robisz.

Sztuką nie jest o błąd składni w innym miejscu na tej stronie javascript html najwyższego poziomu :-)

Powiązane problemy