0

我已经准备好加载 aync 另一个视图的视图,然后用 document.write 替换当前视图(是的,我想替换整个页面!):

$.ajax({
type: "GET",
url: myUrl,
data: null,
async: true,        
success: function (result) {

    document.close();
    document.open();
    document.write(result);
    document.close();
},
error: function (req, status, error) {
    $("#loading-div").html("error");
}
});

内容是具有自己的脚本和 css 样式的完整视图。使用 IE 或 Chrome 时一切正常。当我在 Firefox 中加载页面时,通过 document.write 加载的页面似乎无法正常工作——尤其是脚本(有些有效,有些无效)。

由于未评估的脚本,我无法使用 innerHTML。

为什么它只在 Firefox 中不能正常工作(甚至 IE 都可以处理它!)?

4

1 回答 1

1

该规范要求document.open创建一个新的全局。Firefox 就是这样做的。铬没有;我不能代表 IE。

因此,如果您依赖于旧的全局,您的脚本将在 Chrome 中运行,但在 Firefox 中无法运行。

于 2013-05-08T20:36:25.047 回答