我的页面中有一个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}")
我尝试从iframe中调用updatepic
函数,但是在控制台中出现错误:
TypeError: window.parent.updatepic is not a function
我无法找到或理解我在这里做错了什么?请帮助。
答案 0 :(得分:1)
父窗口中的updatepic
方法被包装在一个闭包内(您分配给ready
变量的函数)。因此,该函数在全局window
命名空间中不可用。
将updatepic
的定义移到所分配的函数之外的ready
。