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}")

updatepiciframe 内から関数を呼び出そうとしましたが、コンソールにエラーが表示されます。

TypeError: window.parent.updatepic is not a function

ここで間違っていることを見つけたり、理解したりできませんか? 助けてください。

4

1 に答える 1

1

updatepic親ウィンドウのメソッドは、クロージャー (変数に割り当てている関数) 内にラップされていますready。そのため、この関数はグローバルwindow名前空間では使用できません。

updatepicに割り当てられている関数の外に の定義を移動しますready

于 2013-09-26T04:33:47.267 に答える