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/729403https://stackoverflow.com/a/3603496/729403获取一些信息)

于 2013-01-18T22:09:20.453 回答