用js写入IE9中的子窗口

时间:2012-02-22 21:02:53

标签: javascript jquery internet-explorer

我试着用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?

1 个答案:

答案 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中提到的F​​F css问题。