使用javascript设置doctype

时间:2014-02-03 09:20:15

标签: javascript html doctype

我有一个没有声明doctype的html页面部署到服务器(比如说A)。这是从另一台服务器(比如B)获取js文件。 js创建必要的html页面来显示。现在IE8正在创建问题,因为没有声明doctype(将自己设置为IE5怪癖模式)

现在doctype是读取的第一行,这似乎不可能以这种方式完成(使用js设置doctype)。是否可以设置元标记而不是将页面设置为标准模式?或者还有其他任何我可以将页面设置为标准页面而无需从服务器A修改html页面。

1 个答案:

答案 0 :(得分:4)

var nodeDoctype = document.implementation.createDocumentType(
 'html',
 '-//W3C//DTD XHTML 1.0 Transitional//EN',
 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdd'
);
if(document.doctype) {
    document.replaceChild(nodeDoctype, document.doctype);
} else {
    document.insertBefore(nodeDoctype, document.childNodes[0]);
}

根据您的评论进行更新:

可以使用JS更改doctype以启用兼容性查看(如此处​​所做:http://www.webmasterworld.com/forum91/4856.htm),但这是一个非常讨厌的黑客,不推荐。理想情况下,您可以执行此服务器端。所以有一个doctype js参数,然后做一个页面重新加载:

window.location = window.location+"?doctype=newdoctype"

这会导致页面重新加载,这可能不适合您,但这是最安全的方法。