如何将脚本添加到iframe,然后添加一个元素来触发它

时间:2013-01-18 21:53:44

标签: javascript jquery iframe dynamic insert

(使用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()未定义。有任何想法吗?感谢

1 个答案:

答案 0 :(得分: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获取一些信息)