为什么jQuery .prop()不能用于' allowfullscreen'?

时间:2016-07-14 08:49:30

标签: javascript jquery html attr prop

根据文档,jQuery .prop()方法仅适用于501- Rank1 501- Rank1 401- Rank3 301- Rank4 301- Rank4 201- Rank6 101- Rank7 selectedIndextagNamenodeNamenodeType,{ {1}}和ownerDocument

但据我检查并尝试过,它不适用于iFrame属性defaultChecked

但是,这个属性是布尔值,所以如果我想将它设置为是否工作,则不可能使用jQuery defaultSelected来执行此操作,因为只要 any,该属性就是活动的值已设置。因此,唯一的方法是设置属性或完全删除它(再次),这至少不是最佳方式。

目前,我需要将其设置如下:

allowFullscreen

但它在某种程度上无法正常/简单/逻辑地运作:

.attr()

这是一个错误还是以某种方式打算?

2 个答案:

答案 0 :(得分:2)

由于历史原因,HTML属性和HTML属性之间的区别很混乱。作为实际XML的XHTML执行属性,如disabled="disabled",以便它们可以解析为有效的XML。幸运的是,HTML5使我们远离地狱。

MDN文档将HTML属性(例如已禁用)称为"布尔"属性。

然而, allowfullscreen 被引用为具有可以设置为true的值而不是" Boolean"属性。换句话说, allowfullscreen 是属性而不是属性。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#Attributes

  

<强>的allowFullScreen
  如果允许通过调用其Element.requestFullscreen()方法将帧置于全屏模式,则可以将此属性设置为true。如果没有设置,则该元素无法进入全屏模式。

&#34;布尔&#34;没有提到。 &#34; true&#34;的值是另一个赠品...

https://www.w3.org/TR/html5/infrastructure.html#boolean-attribute

  

注意:值&#34; true&#34;和&#34;假&#34;不允许在布尔属性上。要表示错误值,必须完全省略该属性。

如果属性是鸭子, allowfullscreen 看起来像鸭子,像鸭子一样游泳,像鸭子一样呱呱叫,但实际上是鸭子。

答案 1 :(得分:-1)

这会将您的属性设置为true / false,具体取决于您的allowFullScreen var。

$iframe.attr('allowFullScreen', allowFullScreen);

因此,您将拥有值为true或false的属性,您可以将它们检查为:

var isAll = ($iframe.attr('allowFullScreen') == 'true');