2

为什么这在所有浏览器中都有效 - 除了 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 中保持为空。

查看原始版本的小提琴(document.write):http: //jsfiddle.net/jasonday/Tx4Uv/

和更新尝试使用的小提琴,.append而不是:http .write: //jsfiddle.net/jasonday/Tx4Uv/4/

4

1 回答 1

2

固定的。

我添加了setTimeout2ms 以允许 iframe 在附加到头部和正文之前完全渲染(主要用于 IE)。

于 2012-11-12T03:30:14.370 回答