Как вызвать функцию JavaScript в верхней раме? -- javascript поле с участием frames пол Связанный проблема

how to call a javascript function in the top frame?


6
vote

проблема

русский

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

 <код> top html doc  - 1st level frame     - 2nd level frame   

Мой верхний HTML DOC имеет функцию, называемую testfn (). В кадре 2-й уровень у меня есть кнопка с onclick="top.testFn();" , но это не вызывает testfn (). В Firebug Если я использую часы для выполнения <Код> top.testFn(); TypeError: TestFN () не является функцией.

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

Английский оригинал

This seems really simple, but how do I call a javascript function that's defined in the top-level html, from a child frame?

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

my top html doc has a function called testFn(). In the 2nd level frame I have a button with onclick="top.testFn();" but this doesn't call the testFn(). In Firebug if I use a watch to execute top.testFn(); it says TypeError: testFn() is not a function.

Should this all just work - in which case it's a problem with my documents, or is there some other way to call functions in the top-level window?

</div
     
 
 

Список ответов

4
 
vote
vote
Лучший ответ
 

Ваш код выглядит правильно. Если он говорит <код> testFn() is not a function тогда, возможно, это не так. Вы пробовали настроить <код> #define _GNU_SOURCE #include <stdio.h> #include <dlfcn.h> int open(const char *fn, int flags) { static int (*real_open)(const char *fn, int flags); if (!real_open) { real_open = dlsym(RTLD_NEXT, "open"); } fprintf(stderr, "opened file '%s' ", fn); return real_open(fn, flags); } 0 в <код> #define _GNU_SOURCE #include <stdio.h> #include <dlfcn.h> int open(const char *fn, int flags) { static int (*real_open)(const char *fn, int flags); if (!real_open) { real_open = dlsym(RTLD_NEXT, "open"); } fprintf(stderr, "opened file '%s' ", fn); return real_open(fn, flags); } 1 вашего верхнего рамки, чтобы убедиться, что работает?

Там может быть ошибка JavaScript, которая приводит к коду, создающую ваш <код> #define _GNU_SOURCE #include <stdio.h> #include <dlfcn.h> int open(const char *fn, int flags) { static int (*real_open)(const char *fn, int flags); if (!real_open) { real_open = dlsym(RTLD_NEXT, "open"); } fprintf(stderr, "opened file '%s' ", fn); return real_open(fn, flags); } 2 функции, не успешно завершенной.

 

Your code looks right. If it says testFn() is not a function then perhaps it isn't. Have you tried setting onload="testFn();" in the <BODY> of your top frame to make sure that works?

There could be some javascript error which leads to the code creating your testFn function not being successfully completed.

</div
 
 
2
 
vote

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

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

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

 

Have you tried calling it like this:

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

I am assuming you have the 2nd frame inside the 1st frame.

</div
 
 
 
 
0
 
vote

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

Трюк не имеет синтаксической ошибки в другом месте в JavaScript на этом HTML-странице верхнего уровня: -)

 

Actually, that is exactly how you do it.

The trick is not having a syntax error elsewhere in the javascript on that top-level html page :-)

</div
 
 

Связанный проблема

0  транзакция внутри контура  ( Transaction inside a for loop ) 
Я хочу запустить транзакцию внутри контура. Мой код: - <код> n==00 Но проблема в том, что после оповещения (перед транзакцией) я напрямую получаю предупр...

0  Регулировка часовой пояс в JavaScript на основе IP-адреса  ( Timezone adjustment in javascript based on ip location ) 
<Код> offset = new Date().getTimezoneOffset(); Это дает вам смещение временизона, основанное на компьютерных часах или часовой зоне браузера. Есть ли спосо...

0  jQuery: передача это к детской функции  ( Jquery passing this to child function ) 
У меня есть что-то подобное: <код> $('element.selector').live("click", function (){ run_some_func (); }); $('element.selector2').live("click", function...

0  Почему JavaScript не стреляет? [закрыто]  ( Why javascript is not firing ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

0  Расчет разницы в положении курсора  ( Calculating difference in cursor position ) 
Я хочу создать что-то, что проводит и показывает каждое из некоторых изображений, когда пользователь перемещает мышь через экран. Я изначально пытался испол...

-3  Несоответствие массива JavaScript  ( Javascript array inconsistency ) 
У меня есть массив. Я бегу к проблемам, так что ... В моем коде я поместил следующий код отладки: <код> console.log(this.pages); console.log(this.pages.le...

8  Почему я не могу удалить это cookie?  ( Why cant i delete this cookie ) 
Хорошо, вот 411 - у меня есть следующий обработчик событий в моем файле Global.Asax.cs: <код> private void Global_PostRequestHandlerExecute(object sender, E...

41  Тест, если элемент уже имеет jQuery DatePicker  ( Test if element already has jquery datepicker ) 
У меня есть форма со многими входными элементами. Некоторые поля встречаются на сегодняшний день с jQuery UI DatePicker Arlaedy прилагается: <код> $("#someE...

1  Как сила использует «это» в CoffeeScript?  ( How force use this in coffeescript ) 
Мне нужно определить один статический метод в матчах, как это: <код> class @MotherClass @test = => Foo.bar(this) # same with @ Но если вы попробуе...

0  Почему строковая переменная может использовать метод Foreach по вызову JS?  ( Why a string variable can use foreach method by call in js ) 
<Код> var rst = 0; var num = 0; Array.prototype.forEach.call(num + '', function(v){ rst += +v; }); Вы можете увидеть сверху. <Код> num - это ном...

6  Office 365 График API от JavaScript: Как правильно аутентифицировать  ( Office 365 graph api from javascript how to properly authenticate ) 
Я не ненавижу ОАУТ, но я ненавижу себя, потому что не смог обернуть голову вокруг концепции. Сказав это, вот мой вопрос: я пытаюсь позвонить в API Office Grap...

0  Проблема космического дерева JavaScript  ( Space tree javascript problem ) 
Я использую Space Tree Java Script для создания диаграммы организации. Теперь, когда это работает нормально, но проблема в том, что я не могу печатать график ...

6  Как обнаружить IE7 и ниже, используя jquery.support?  ( How to detect ie7 and lower using jquery support ) 
В настоящее время я использую jquery.browser для обнаружения IE7 и ниже <код> if ($.browser.msie && parseInt($.browser.version) <= 7) { //codes } Но...

0  jQuery работает в Firefox, Safari, но не в Chrome  ( Jquery working in firefox safari but not in chrome ) 
Я написал какой-то код с JQuery Works в Firefox, Safari и IE9. Но Chrome это не нравится. Никаких очевидных MSG в Chrome Console не подходит. Я ударяю стену, ...

0  Функция обжига от Google Войти в кнопку, когда пользователь уже вписан в браузер  ( Firing function from google sign in button when user is already signed into brow ) 
Я пытаюсь иметь Google Войти на моем сайте. В настоящее время, если вы уже зарегистрированы в браузере, кнопка скажет «подписано» и <код> g_login() Функция...