TypeError:window.parent.updatepic不是函数,当我尝试从iframe访问函数到他的窗口的父

时间:2013-09-26 04:28:40

标签: javascript jquery

我的页面中有一个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

我无法找到或理解我在这里做错了什么?请帮助。

1 个答案:

答案 0 :(得分:1)

父窗口中的updatepic方法被包装在一个闭包内(您分配给ready变量的函数)。因此,该函数在全局window命名空间中不可用。

updatepic的定义移到所分配的函数之外的ready