3
在没有任何框架的情况下使用Web Components,实现自定义事件的正确方法是什么?例如,假设我有一个有pop
自定义事件自定义元素x-pop-out
我希望所有的工作情况如下:Vanilla Web组件自定义事件属性和属性
<x-pop-out onpop="someGlobal.doSomething()"/>
var el = document.getElementsByTagName('x-pop-out')[0];
el.onpop =()=> someGlobal.doSomething();
//or
el.addEventListener('pop',()=> someGlobal.doSomething());
最后一个我知道要怎么做,但做我需要自定义实现每个属性和getter/setter?另外,eval()
是从属性执行字符串的适当方式吗?
的感谢!这似乎是正确的,我想知道是否有某种方式一次注册一个事件的所有3种模式,但我相信你是正确的没有。令人惊讶的是,认为每个具有自定义事件的Web组件都被期望“eval(字符串)”,但我没有看到其他方面的建议。 – hapticdata
实际上,使用eval()并没有链接到自定义元素,而是在属性中嵌入JavaScript。它也用于标准元素。这就是为什么在应用受限内容策略时不允许内联JavaScript。 – Supersharp