使用javascript设置doctype
我有一个html页面,没有声明部署到服务器的doctype(比如a)。这是从另一台服务器(比如B)获取js文件。js创建必要的html页面来显示。现在IE8正在制造问题,因为没有声明doctype(将自身设置为IE5怪癖模式) 现在,doctype是读取的第一行,这似乎不可能通过这种方式完成(使用js设置doctype)。是否可以设置meta标记来将页面设置为标准模式?或者是否有其他我可以设置页面为标准页面,而无需修改服务器A的html页面使用javascript设置doctype,javascript,html,doctype,Javascript,Html,Doctype,我有一个html页面,没有声明部署到服务器的doctype(比如a)。这是从另一台服务器(比如B)获取js文件。js创建必要的html页面来显示。现在IE8正在制造问题,因为没有声明doctype(将自身设置为IE5怪癖模式) 现在,doctype是读取的第一行,这似乎不可能通过这种方式完成(使用js设置doctype)。是否可以设置meta标记来将页面设置为标准模式?或者是否有其他我可以设置页面为标准页面,而无需修改服务器A的html页面 var nodeDoctype = document.
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以实现兼容性查看(如下所示:),但这是一个非常讨厌的攻击,不推荐使用。理想情况下,您可以在服务器端执行此操作。因此,请使用doctype js参数,然后重新加载页面:
window.location = window.location+"?doctype=newdoctype"
这将导致页面重新加载,这可能不适合您,但这是最安全的方法 -但是,如果可以设置元标记,则可以设置doctype。这两个文件都必须在加载时读取-同时读取此文件将使浏览器重新读取doctype。html页面已加载。顺便说一句,
document.doctype为null
如何在IE中执行此操作。createDocumentType
在Interest中不可用。我很想说这个答案是完全错误的,因为XML解析器实际上使用DOCTYPE来确定如何解释和验证(X)HTML/XML标记,因此修改已经解析的DOM来更改DOCTYPE是无用的。但它是IE,可能真的有用。“文档类型定义(DTD)定义XML文档的合法构造块。它使用合法元素和属性列表定义文档结构。
”如果使用javascript添加doctype,浏览器将不会重新读取它