用js编写IE9中的子窗口

writing to child window in IE9 with js

本文关键字:窗口 IE9 js 编写      更新时间:2023-09-26

我正在尝试使用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上查找了这个错误,它很普通,有人知道我为什么不能在那里插入HTML吗?

我使用了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问题。