小编eve*_*ost的帖子

尝试在严格模式下删除数据集属性时,在Safari上"无法删除属性"

考虑以下代码:

(function () {
  'use strict';
  delete document.body.dataset.state;
})();
Run Code Online (Sandbox Code Playgroud)

身体dataset是空的.Safari浏览器将所有DOMStringMap值-嗯,我猜是这样-因为ReadOnly,他们enumerable,configurablewritable描述符值都设置为false.这导致TypeError: Unable to delete property出现在上面提到的例子中.

但是在Chrome数据集中,属性描述符值设置为true(可以检查Object.getOwnPropertyDescriptor()),删除不存在的属性不会抛出错误.

那么,什么行为是正确的?该规范说明了readonly数据集,但可写DOMStringMap,所以我假设数据集属性必须是可删除的.我错过了什么吗?

javascript safari dom

10
推荐指数
1
解决办法
1546
查看次数

标签 统计

dom ×1

javascript ×1

safari ×1