Javascript 创建一个iframe,然后使用jQuery将数据附加到它
我正在尝试对greasemonkey用户脚本进行一些修改,以实现我需要的功能。代码如下Javascript 创建一个iframe,然后使用jQuery将数据附加到它,javascript,jquery,iframe,userscripts,Javascript,Jquery,Iframe,Userscripts,我正在尝试对greasemonkey用户脚本进行一些修改,以实现我需要的功能。代码如下 showAddress:function(addrString,type) { this.addrBox=$('<div id="batchPublish"></div>') .append('<div id="batchHeader"></div>') .append('<div id="batchCont
showAddress:function(addrString,type)
{
this.addrBox=$('<div id="batchPublish"></div>')
.append('<div id="batchHeader"></div>')
.append('<div id="batchContent" style="float:left;clear:both"></div>');
.........
var batchContent=this.addrBox.find('#batchContent')
.append('<pre width="300" style="text-align:left" id="batchedlink"></pre>');
this.addrBox.find('#batchedlink').css({'width':'500px','height':'250px','overflow':'auto','word-wrap': 'break-word'})
.append(addrString);
$.blockUI({message:this.addrBox,css:{width:"520px",height:"300px"}}); }
showAddress:函数(addrString,类型)
{
this.addrBox=$(“”)
.append(“”)
.附加(“”);
.........
var batchContent=this.addrBox.find(“#batchContent”)
.附加(“”);
this.addrBox.find('#batchedlink').css({'width':'500px','height':'250px','overflow':'auto','word-wrap':'break-word'})
.append(addrString);
$.blockUI({message:this.addrBox,css:{宽度:“520px”,高度:“300px”}});}
基本上,这段代码将数据写入html。我想要实现的是将“addrString”写入嵌入的iframe。现在它在“pre”标签中。我尝试了很多方法,但仍然没有成功。Iframe总是空的。
我完全是javascript的新手,不清楚这是否可行
谢谢你的帮助。很难准确地说出你在问什么——但是如果你想知道是否可以将DOM元素附加到iFrame,答案是“否”。很难准确地说出你在问什么——但是如果你想知道是否可以将DOM元素附加到iFrame,答案是“否”.由于您要在同一域中添加iFrame,因此可以如下操作其内容:
()
$(“#batchContent”).append(“”);
/*---补偿IE和FF中的缺陷,动态添加iFrame需求
是时候变得“能干”了。
*/
setTimeout(函数(){
var iframeBody=$(“#batchedlink”).contents().find(“body”);
iframeBody.append(addrString);
},
333
);
注意:对于Chrome用户脚本,显然不需要计时器延迟。但对于FF和IE8(我仔细检查过的另外两种浏览器),动态添加的iFrame在出于某种原因“稳定”之后才可操作。这似乎需要200毫秒
静态加载的iFrame没有这种延迟,请参阅jsBin演示。因为您要在同一个域中添加iFrame,那么您可以像这样操作其内容:
()
$(“#batchContent”).append(“”);
/*---补偿IE和FF中的缺陷,动态添加iFrame需求
是时候变得“能干”了。
*/
setTimeout(函数(){
var iframeBody=$(“#batchedlink”).contents().find(“body”);
iframeBody.append(addrString);
},
333
);
注意:对于Chrome用户脚本,显然不需要计时器延迟。但对于FF和IE8(我仔细检查过的另外两种浏览器),动态添加的iFrame在出于某种原因“稳定”之后才可操作。这似乎需要200毫秒
静态加载的iFrame没有这种延迟,请参阅jsBin演示。OMG,这是我生命中的黑客,但谢谢你的回答+1mg,这是我生命中的黑客,但谢谢你的回答+1.
$("#batchContent").append ('<iframe id="batchedlink"></iframe>');
/*--- Compensate for a bug in IE and FF, Dynamically added iFrame needs
some time to become "DOM-able".
*/
setTimeout ( function () {
var iframeBody = $("#batchedlink").contents ().find ("body");
iframeBody.append (addrString);
},
333
);