Могу ли я изменить значение в JS родительской страницы из JS iframe? - PullRequest
0 голосов
/ 06 декабря 2009

У меня есть страница с 3 iframes, и эта страница загружает файл JS, который имеет

var stayFifty = new Boolean(false);

и функция, которая изменяет то, что она делает на основе этого логического значения.

В iframe на этой странице у меня есть функция onclick, определенная как

toggleFifty = function() {
    parent.stayFifty = new Boolean(!(stayFifty.valueOf()));
};

добавлено в тег img с

onclick="toggleFifty();"

Но когда я нажимаю на тег img, функция toggleFifty, похоже, не срабатывает. Я полагаю, что это связано с тем, как функция toggleFifty пытается изменить переменную stayFifty. Может кто-нибудь объяснить, как решить эту проблему и немного о проблеме с областью действия?

Я пытался использовать информацию из по этой ссылке , но, похоже, я чего-то не понимаю.

1 Ответ

3 голосов
/ 06 декабря 2009

Вы пропускаете parent при изменении значения переменной stayFifty:

toggleFifty = function() {
    parent.stayFifty = !parent.stayFifty;
};

Кстати, обратите внимание, что вам не нужно использовать логический конструктор при работе с логическими переменными, а когда вы объявляете, вы можете просто использовать логические литералы :

// on your parent page
var stayFifty = false;
...