0

(jqueryまたは単にjsを使用)iframeにスクリプトを追加してから、それをトリガーする要素を追加することは可能ですか?これによりスクリプトが追加されますが、Chromeで関数が未定義であるというエラーが表示されます。

        //create element
        var cloned = $("<input type='button'/>")

        cloned.attr('onclick', "alertUser()");
        var parent = $("#parent");
        var iframe = $('<iframe />').attr("id", "rbm_pu");
        parent.append(iframe);
        var frame = $("#rbm_pu").contents();
        frame.find("body").append(cloned);
        frame.find('body').append("<script type='text/JavaScript'>function alertUser(){alert('hello');}</script>");

そこに表示されますが、それalertUser()は未定義であると言います。何か案は?ありがとう

4

1 に答える 1

1

このフィドルは正しい方法にあなたを導くはずです:http: //jsfiddle.net/vsXYA/2/

<div id='parent'></div>

// first, create button and assign the callback
var button = $("<input type='button' value='click me' />");
button.click(function() {
    alert("hello");
});

// then, append the button to the freshly created iframe
$('<iframe id="someId"/>')
    .appendTo('#parent')
    .contents().find('body')
    .append(button);

関数を文字列として定義することを主張する場合(そして私はあなたがそれを行うことを強くお勧めしません)、これは機能します:http: //jsfiddle.net/vsXYA/5/

( https://stackoverflow.com/a/4120007/729403およびhttps://stackoverflow.com/a/3603496/729403からいくつかの情報を取得しました)

于 2013-01-18T22:09:20.453 に答える