如何在iframe标记中插入javascript代码

时间:2012-11-30 10:51:08

标签: javascript jquery iframe

我这样做但不起作用: -

我正在尝试在iframe中插入像素,然后将其附加到正文中。

jQuery('#subscribr').append('<iframe>
<script language="javascript" src="http://www.abc/static/st.v2.js"></script>
<script language="javascript">
var ef_event_type="transaction";
var ef_transaction_properties = "ev_ProductViews=1";
/*
 * Do not modify below this line
 */
var ef_segment = "";
var ef_search_segment = "";
var ef_userid="xxxx";
var ef_pixel_host="pixel.abc.net";
var ef_fb_is_app = 0;
effp();
</script>
</iframe>');
enter code here

3 个答案:

答案 0 :(得分:7)

当字符串中包含</script>时,这样的脚本似乎会中断。解决方法可能是通过dom操作添加元素:

iframe = $('<iframe>');

var script   = document.createElement("script");
script.type  = "text/javascript";
script.src   = "http://www.abc/static/st.v2.js"; // Or:
script.text  = "Your code here!"

iframe[0].appendChild(script);
iframe.appendTo('#subscribr'))

答案 1 :(得分:2)

这是对我有用的解决方案..

var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = "http://www.abc/static/st.v2.js";
    // Use selector here
    jQuery("#subscribr").append(s);

答案 2 :(得分:0)

工作样本:http://fiddle.jshell.net/f2x7G/

var doc = null;
   if(iframe.contentDocument) doc = iframe.contentDocument;
   else if(iframe.contentWindow) doc = iframe.contentWindow.document;
   else if(iframe.document) doc = iframe.document;

if(doc == null) throw "Document not initialized";

doc.open();
var script   = doc.createElement("script");
script.type  = "text/javascript";
// script.src = 'http://www.abc/static/st.v2.js';
script.text  = "alert('voila!');"
doc.appendChild(script);
doc.close();