TypeError: window.parent.updatepic не является функцией, когда я пытаюсь получить доступ к функции из iframe к родителю его окна

0

У меня есть iframe внутри моей страницы, внутри этого iframe я загружаю страницу с этим кодом Javascript:

<script>
    var ready;
    ready = function() {
        window.parent.updatepic("#{@user.photo_url.to_s}")
    };
    $(document).ready(ready);
    $(document).on('page:load', ready);
</script>

На странице, содержащей мой iframe, есть сценарий ниже:

var ready;
ready = function() {
  function updatepic(pic){
    $("#image").attr("src", pic);
  }
};

$(document).ready(ready);
$(document).on('page:load', ready);

Как вы можете видеть в этой строке в первом примере кода выше:

 window.parent.updatepic("#{@user.photo_url.to_s}")

Я попытался вызвать функцию updatepic изнутри iframe, но я получаю сообщение об ошибке в консоли:

TypeError: window.parent.updatepic is not a function

Я не могу найти или понять, что я здесь делаю неправильно? Помоги пожалуйста.

Теги:

1 ответ

1
Лучший ответ

Ваш метод updatepic в родительском окне завернут в закрытие (функция, которую вы назначаете ready переменной). Таким образом, функция не доступна в глобальном window имен.

Переместите определение updatepic за пределы назначенной функции ready.

  • 0
    это работает: D большое спасибо :) +1
  • 0
    привет @PascalZajac, пожалуйста, есть способ получить доступ к updatepic (), не меняя его определения? мне нужно сделать это внутри закрытия jquery
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню