Как вызвать функцию JavaScript в верхнем фрейме? - PullRequest
6 голосов
/ 18 июня 2010

Это кажется действительно простым, но как мне вызвать функцию javascript, определенную в html верхнего уровня, из дочернего фрейма?

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

В моем верхнем html-документе есть функция testFn (),В кадре 2-го уровня у меня есть кнопка с onclick="top.testFn();", но это не вызывает testFn ().В Firebug, если я использую часы для выполнения top.testFn();, он говорит, что TypeError: testFn () не является функцией.

Должно ли все это работать - в этом случае это проблема с моими документами или есть какой-то другой способ вызова функций в окне верхнего уровня?

Ответы [ 3 ]

4 голосов
/ 18 июня 2010

Ваш код выглядит правильно.Если он говорит testFn() is not a function, то, возможно, это не так.Вы пытались установить onload="testFn();" в <BODY> вашего верхнего фрейма, чтобы убедиться, что он работает?

Может быть некоторая ошибка javascript, которая приводит к тому, что код, создающий вашу функцию testFn, не был успешно завершен.

2 голосов
/ 18 июня 2010

Вы пытались назвать это так:

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

Я предполагаю, что у вас есть 2-й кадр внутри 1-го кадра.

0 голосов
/ 18 июня 2010

На самом деле, именно так вы и делаете.

Уловка заключается в том, что в другом месте javascript на этой html-странице верхнего уровня не было синтаксической ошибки:

...