为什么这在所有浏览器中都有效 - 除了 IE:
var $iframe = $("<iframe name=" + strFrameName +"/>");
var $doc = $iframe.contents();
$doc.find("head").append("<link type='text/css' rel='stylesheet' href='" + opt.loadCSS + "'>");
但是,如果我在 document.write 中使用非 jquery 对象,它在 IE 中可以正常工作吗?
var $iframe = $("<iframe name=" + strFrameName +"/>");
var doc = $iframe[0].contentWindow.document;
doc.write("<link type='text/css' rel='stylesheet' href='" + opt.loadCSS + "'>");
我重新设计了一个插件,并想重写它,这样它就不会使用 document.write
但是,现在 iframe 已创建,但在 IE 中 head/body 仍为空。
查看原始版本的 fiddle (document.write): http://jsfiddle.net/jasonday/Tx4Uv/
和更新尝试使用.append
而不是.write
的 fiddle :
http://jsfiddle.net/jasonday/Tx4Uv/4/
最佳答案
已修复。
我添加了 2 毫秒的 setTimeout
,以允许 iframe 在 append 到 head 和 body 之前完全渲染(主要针对 IE)。
关于jquery 动态 iframe - !document.write 和 IE 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318143/