Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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
Html 省略contenteditable属性的值(跨浏览器)安全吗?_Html_Contenteditable - Fatal编程技术网

Html 省略contenteditable属性的值(跨浏览器)安全吗?

Html 省略contenteditable属性的值(跨浏览器)安全吗?,html,contenteditable,Html,Contenteditable,根据W3C规范 contenteditable属性是一个枚举属性,其关键字为空字符串、true和false。空字符串和true关键字映射到true状态 我发现的所有示例和文档都表示“空字符串”,如下所示: <div contenteditable="">...</div> 。。。 我想知道,为了更简洁、更简洁的代码,以下内容是否同样有效(跨浏览器): <div contenteditable>...</div> 。。。 它工作正常——至少在

根据W3C规范

contenteditable属性是一个枚举属性,其关键字为空字符串、true和false。空字符串和true关键字映射到true状态

我发现的所有示例和文档都表示“空字符串”,如下所示:

<div contenteditable="">...</div>
。。。
我想知道,为了更简洁、更简洁的代码,以下内容是否同样有效(跨浏览器):

<div contenteditable>...</div>
。。。
它工作正常——至少在当前版本的Firefox和Chrome上是如此。我只是想知道它是否是有效和可靠的跨浏览器。我的想法是,它可以与只读、禁用、选择等表单属性进行比较,这些属性通常可靠地使用,无需指定值

解决方案:

Marc B指出了W3C规范中的以下内容:

请注意,空属性语法完全等同于将空字符串指定为属性的值

…这基本上确认了布尔属性/属性的缺失值和空值的可互换性,这意味着上述两个代码段都是有效的,并且(应该)在不同浏览器中得到相同的处理。感谢所有回答的人

根据:

在以下示例中,禁用的属性使用空属性语法给出:

请注意,空属性语法完全等同于将空字符串指定为属性的值,如以下示例所示

现在,这就是W3C所说的,然后是浏览器使读取的内容。你可以肯定,Internet Explorer会将其翻译/解读为“argle bargle screw the specs woofle”,并做自己的事情,可能会将“disabled”视为“do_the最愚蠢的事”\u the可能的事重复=true”。

以下是Mozilla提供的一个有用信息,可以准确回答你的问题

摘录:

根据MDN,
contentEditable
属性设置为true或空字符串时,表示元素可编辑。因为
contentEditable
属性是枚举的,如果不使用从父元素继承的值,则该属性不是布尔值

IE6、Chrome 11、Firefox 3.0(Gecko 1.9)、Opera 10.6和Safari 3.2都支持这一点。

根据这一点,省略该值将导致
继承
,而不是像空字符串那样
。由于价值观不同,我认为这是不安全的


但是如果你想要清晰的代码,为什么不写
true
,因为你需要问这个问题,你甚至连自己的代码都读不懂。我必须查找“”的作用和属性的默认缺失值,这不是我所说的清除。

我可能错了,但我认为这意味着无值属性表示
true
,而不是具有空值的属性,即空字符串。基于。谢谢。这就是我所怀疑的,但我只能找到以这种方式表示的表单属性/属性的引用(没有值)。没有这样提到“contenteditable”,这就是为什么我对它的有效性/可靠性没有100%的信心。只链接的答案是不被鼓励的,因为它们容易受到影响。最好在你的答案中复制链接中的相关信息。谢谢。我理解空字符串等同于“true”,但我要问的是,缺少的字符串是否是表示空字符串的有效方式。为了举例说明,请参考我问题中的代码片段。我很抱歉误读了您最初的问题@JoshR。不允许简单地在标记中写入contenteditable。您必须明确使用三者之一。谢谢@quandary011101。Marc B在W3C规范中的发现表明了另一种情况,这是我接受的答案。你能参考一个矛盾的来源吗?公平地说,IE11是非常符合标准的,与Chrome和FF差不多。作为一个网络开发的人,几乎是在你在CERN转入一台计算机上试用的时候。它在宇宙中的唯一目的是下载任何其他浏览器。适合你自己,为了公平起见。谢谢。这是我第一次看到“注意,空属性语法完全等同于指定空字符串作为属性的值”,如果适用于所有布尔属性,这就是我一直在寻找的确认@ajp:公平是存在的,还有IE。M$有很多机会构建一个好的浏览器,而且IE6在这个星球上的使用时间太长了。直到FF和Chrome开始吃他们的午餐,他们才感到害怕,甚至开始对浏览器进行最小的改进。他们有太多的机会了,现在他们唯一应得的就是对他们在网络上所遭受的痛苦进行折磨而慢慢死去。他们没有救赎。只有复仇,谢谢你。我的目标不是明确的代码,否则越明确越好,对吗?根据规范,省略属性相当于“继承”,但包含属性并将其值设置为空相当于“true”。我的问题是省略的值是否与空值相同。如果差异不清楚,请参考我问题中的代码片段。抱歉,我实际上无法从WHATWG找到关于如何处理没有关键字的属性的规范。-我试着换一行,第二行是引号。我要找的引号是Marc B在他的回答中写的,我只是不知道它到底适用于什么属性,“某些属性可以通过只提供属性名来指定,没有值。”实际上,我认为您引用的WHATWG规范暗示,当忽略该值时,
tru