2013-01-18 117 views
0

(使用jquery或只是js) 是否可以添加腳本到iframe,然後添加一個元素來觸發它?這增加了腳本,但它在Chrome中給我一個錯誤,說該函數是未定義的。如何添加腳本到iframe,然後添加一個元素來觸發它

 //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()是未定義的。有任何想法嗎?由於

+2

有很多的東西錯的代碼。首先不要使用attr添加事件處理程序! – epascarello

+0

關閉如果答案是正確的... – Wolf

回答

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

+0

帕維爾,我不能感謝你足夠的兄弟。感謝您傳遞知識並保持共享! –

相關問題