Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 删除is=";的预期行为是什么&引用;自定义元素的属性?_Javascript_Html_Polymer_Web Component_Custom Element - Fatal编程技术网

Javascript 删除is=";的预期行为是什么&引用;自定义元素的属性?

Javascript 删除is=";的预期行为是什么&引用;自定义元素的属性?,javascript,html,polymer,web-component,custom-element,Javascript,Html,Polymer,Web Component,Custom Element,比如说, 假设我们有和一个自定义元素定义: document.registerElement('awesomebutton', AwesomeButton) 当is=“”属性被删除或替换为新值时,预期的行为是什么?,它应该对元素的类型没有影响: 实例化自定义元素后,更改is属性的值不得影响该元素的自定义元素类型 但是,attributeChangedCallback仍应正常触发。(该规范并未免除is属性触发它的责任。)您可以在支持浏览器(Chrome或设置了dom.webcomponents.

比如说,

假设我们有
和一个自定义元素定义:

document.registerElement('awesomebutton', AwesomeButton)
is=“”
属性被删除或替换为新值时,预期的行为是什么?

,它应该对元素的类型没有影响:

实例化自定义元素后,更改
is
属性的值不得影响该元素的自定义元素类型

但是,
attributeChangedCallback
仍应正常触发。(该规范并未免除
is
属性触发它的责任。)您可以在支持浏览器(Chrome或设置了
dom.webcomponents.enabled
config标志的Firefox)中观察这种行为:

“严格使用”;
const prototype=Object.create(HTMLElement.prototype);
prototype.attributeChangedCallback=函数(名称、旧值、新值){
this.textContent=`my“${name}”属性更改为“${newValue}”!`;
};
registereElement('examp-el',{prototype:prototype,extensed:'div'});
const el=document.createElement('div','examp el');
el.textContent=“我是一个元素!”;
文件.正文.附件(el);
el.setAttribute('is','changed one');
删除属性(“is”);
el.setAttribute('is',“更改两次”);

el.setAttribute('is',“更改三次”)
(您只允许扩展这样的内置类型),如果您执行此操作,浏览器应该忽略
is
属性,只使用标记名(
一个自定义类型
)。似乎DOM克隆可能会尊重
is
的新值,而不是使用旧值的原型,但我可能会等到规范的这一部分更加明确之后再将其添加到文章中。