Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOCTYPE是仅与标记相关还是与DOM相关?_Javascript_Xhtml - Fatal编程技术网

Javascript DOCTYPE是仅与标记相关还是与DOM相关?

Javascript DOCTYPE是仅与标记相关还是与DOM相关?,javascript,xhtml,Javascript,Xhtml,文档的声明(和内容类型)在何种抽象级别上仍然相关 例如,如果我正在使用XHTML,但想要使用XHTML中不可用的元素(一个简单的例子是iframe),那么使用JavaScript编程添加元素会是一种不好的做法吗?或者我必须不使用iframe还是不使用XHTML 验证器仍然会验证文档(因为它不执行JS),但是修改DOM使其不再与(和返回的内容类型)一致,从理论上讲是否有问题,或者仅与文本形式的标记相关 补遗 更具体地说,我的问题不是关于将如何影响JavaScript或JavaScript将如何执行

文档的
声明(和内容类型)在何种抽象级别上仍然相关

例如,如果我正在使用XHTML,但想要使用XHTML中不可用的元素(一个简单的例子是iframe),那么使用JavaScript编程添加元素会是一种不好的做法吗?或者我必须不使用iframe还是不使用XHTML

验证器仍然会验证文档(因为它不执行JS),但是修改DOM使其不再与
(和返回的内容类型)一致,从理论上讲是否有问题,或者
仅与文本形式的标记相关

补遗 更具体地说,我的问题不是关于
将如何影响JavaScript或JavaScript将如何执行,而是它应该如何影响开发人员以编程方式添加、删除和修改元素的选择


我的例子是,如果一个客户端同时需要XHTML遵从性和所见即所得编辑器,那么您如何处理通常随所见即所得编辑器一起提供的iframe?您是否应该将其从标记中删除,只删除到JS中的
document.appendChild()
it?或者您是否告诉您的客户他们必须在两种类型中进行选择—iframe还是XHTML?

DOCTYPE定义以标准术语描述标记。因此,一旦用户代理解析了标记,DOCTYPE在这方面就不重要了。实际上,DOCTYPE也会触发浏览器行为,因此您对DOM的动态操作会受到DOCTYPE的影响。

我决不是规则或标准的狂热爱好者,但将HTML元素插入不支持该元素的DOCTYPE是愚蠢的,因为它可能会导致无法调试的微妙问题

所以:它可能会起作用,而且不会有问题。(您的老板或客户永远不会发现,因为验证器只能在基本HTML上运行)


我还是不建议你这么做。

Eesh,我明白你的意思。如果您有一个客户认为如果不是XHTML,网页就没有任何好处,那么说服他们放弃它可能会很棘手

不过值得一试:花时间编写JavaScript来插入在XHTML中无效的元素,而不仅仅是使用允许这些元素的doctype,似乎毫无意义


在XHTML1.0过渡版中仍然允许使用
,不是吗?这是一种选择吗?

这是从实用的角度出发,还是从符合标准的谄媚者的角度出发?您是否只是为了确保页面符合标准,还是因为客户或老板施加了一些限制?在前一种情况下,是的,你这样做是在欺骗自己。@Mike-我更倾向于沉迷于标准,但我对硬币的两面都感兴趣。我对标准方面更感兴趣。@Amarghosh——更多是为了标准;我有一些个人页面没有验证,用JS添加元素的想法是一种思想实验。。。但如果是后者,你不会还在欺骗你的客户或老板吗@理查德:是的,但谁不这么做;)很抱歉,如果代码是100%有效的,那么“未来的微妙问题”也同样可能发生。它们通常是浏览器错误的结果。也许,但浏览器错误主要可以通过在网上四处查看或询问来识别,因为它们已经发生在其他人身上。由于您在doctype
abc
中使用了
xyz
而导致的错误或奇怪行为无法执行。正如我所说的,它可能会很好地工作,并且我可以通过这种方式应用一些补丁或解决方法。但我不会向任何人推荐它作为一种工作方式。我对我的问题进行了编辑,以明确我的问题不是关于DOCTYPE会影响JavaScript,而是关于它应该如何影响我对JavaScript的目标。但他的观点是,如果你使用JavaScript在浏览器不期望的地方插入iframe,因为它使用某种“严格”模式,所以可能会发生奇怪的事情。所以我想说不要这样做。是的,iframe在XHTML过渡中进行验证。我不认为这是一个好的实用解决方案。。。也就是说,这是一个很好的解决方案,我对此一无所知。