У меня есть 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
Я не могу найти или понять, что я здесь делаю неправильно? Помоги пожалуйста.
Ваш метод updatepic
в родительском окне завернут в закрытие (функция, которую вы назначаете ready
переменной). Таким образом, функция не доступна в глобальном window
имен.
Переместите определение updatepic
за пределы назначенной функции ready
.