是否可以在不重新加载页面的情况下使用JavaScript更改文档类型?

是否可以在不重新加载页面的情况下使用JavaScript更改文档类型?,javascript,Javascript,如果我想用JavaScript再次呈现整个页面,我可能必须在不重新加载页面的情况下更改文档类型。是否可以使用JavaScript更改文档类型,或者是在服务器端重新加载页面并呈现新文档类型的唯一现实选择 是否可以使用JavaScript更改文档类型 不,DOCTYPE不是DOM的一部分(考虑的是XML样式表声明) 编辑 虽然您可以更改文档的(doctype)节点,但这样做的结果不太可能有用或可靠 当前标准为,其中的定义(部分)表示: 但是,请注意,虽然有些实现可能会实例化 支持其他功能的不同类型的

如果我想用JavaScript再次呈现整个页面,我可能必须在不重新加载页面的情况下更改文档类型。是否可以使用JavaScript更改文档类型,或者是在服务器端重新加载页面并呈现新文档类型的唯一现实选择

是否可以使用JavaScript更改文档类型

不,DOCTYPE不是DOM的一部分(考虑的是XML样式表声明)

编辑 虽然您可以更改文档的(doctype)节点,但这样做的结果不太可能有用或可靠

当前标准为,其中的定义(部分)表示:

但是,请注意,虽然有些实现可能会实例化 支持其他功能的不同类型的文档对象 …基于 创建时指定的DocumentType,以后更改它是不正确的 不太可能导致所支持功能的更改

还应该注意的是,在本节中,它是针对XML文档的,对于HTML文档不是强制性的,也不打算与HTML文档一起使用

在建议的DOM4核心标准中,表示doctype节点在节点树中是可选的

如果目的是将文档从比如说,quirks模式更改为no-quirks模式,则在DOM 4草案中有一条非规范性意见:

仅当文档处于默认状态时,该模式才会从默认模式更改 由HTML解析器基于存在、不存在或值创建 DOCTYPE字符串的

DOM4还默认假定所有文档都是XML,除非DOCTYPE另有说明,否则可能需要一些时间才能过滤到正在使用的浏览器中

document.doctype;
//<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

var newDocType = document.implementation.createDocumentType( 'svg:svg', '-//W3C//DTD SVG 1.1//EN', 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' );

document.replaceChild( newDocType, document.doctype);

document.doctype;
//<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
是否可以使用JavaScript更改文档类型

不,DOCTYPE不是DOM的一部分(考虑的是XML样式表声明)

编辑 虽然您可以更改文档的(doctype)节点,但这样做的结果不太可能有用或可靠

当前标准为,其中的定义(部分)表示:

但是,请注意,虽然有些实现可能会实例化 支持其他功能的不同类型的文档对象 …基于 创建时指定的DocumentType,以后更改它是不正确的 不太可能导致所支持功能的更改

还应该注意的是,在本节中,它是针对XML文档的,对于HTML文档不是强制性的,也不打算与HTML文档一起使用

在建议的DOM4核心标准中,表示doctype节点在节点树中是可选的

如果目的是将文档从比如说,quirks模式更改为no-quirks模式,则在DOM 4草案中有一条非规范性意见:

仅当文档处于默认状态时,该模式才会从默认模式更改 由HTML解析器基于存在、不存在或值创建 DOCTYPE字符串的

DOM4还默认假定所有文档都是XML,除非DOCTYPE另有说明,否则可能需要一些时间才能过滤到正在使用的浏览器中。

document.DOCTYPE;
document.doctype;
//<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

var newDocType = document.implementation.createDocumentType( 'svg:svg', '-//W3C//DTD SVG 1.1//EN', 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' );

document.replaceChild( newDocType, document.doctype);

document.doctype;
//<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
// var newDocType=document.implementation.createDocumentType('svg:svg','-//W3C//DTD svg 1.1//EN','http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' ); document.replaceChild(newDocType,document.doctype); doctype; //

不过,请仔细阅读参考资料,我个人无法理解此应用程序的任何用例,因此我没有使用此应用程序的个人经验。

document.doctype;
//
var newDocType=document.implementation.createDocumentType('svg:svg','-//W3C//DTD svg 1.1//EN','http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' );
document.replaceChild(newDocType,document.doctype);
doctype;
//


但是,请仔细阅读参考资料,我个人无法理解此应用程序的任何用例,因此我没有使用此应用程序的个人经验。

Y您没有链接DOM4,@Raynos可能是因为它不是当前的标准。@RobG我认为DOM4应该是一个活生生的文档,与WHATWG的HTML类似。它可能是一个活生生的规范。;-)你没有链接DOM4,@Raynos可能是因为它不是当前的标准。@RobG我认为DOM4应该是一个活生生的文档,与WHATWG的HTML类似。它可能是一个活生生的规范。;-)