我试着用jQuery和IE9写一个子窗口。下面是我使用的jQuery 1.7.1代码的JS:
var w = window.open();
sQuery("head", w.document).append(sQuery("<link/>").attr("rel", "stylesheet").attr("href", "css/inlinecss.css"));
sQuery("body", w.document).append(sQuery("<div/>").addClass("smdisplaychat").append(sQuery(".smdisplaychat").html()));
这段代码在Chrome中运行完美,在FireFox中有一半(由于某些原因,它丢失了一些CSS,但这可能是一个不同的问题),但在IE9中我只得到了这个错误:
DOM Exception: HIERARCHY_REQUEST_ERR (3)
在IE9中,它会在尝试两个语句时抛出异常。在MSDN上查找error,它非常通用,任何人都知道为什么我不能在那里插入HTML?
答案 0 :(得分:1)
我使用了document.write,它看起来很有效,虽然它看起来并不漂亮。以下是我将JS更改为:
var w = window.open();
w.document.write("<!DOCTYPE html><html><head>" +
"<link rel='stylesheet' href = 'css/inlinecss.css' />" +
"</head><body>" + sQuery("<div/>").addClass("smdisplaychat").append(sQuery(".smdisplaychat").html()).html() +
"</body></html>");
另一方面,请注意,它似乎也消除了我在OP中提到的FF css问题。