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

我在这里找不到或理解我做错了什么?请帮忙。

4

1 回答 1

1

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

updatepic将被分配的函数外部的定义移动到ready.

于 2013-09-26T04:33:47.267 回答