Использование веб-компонентов без каких-либо фреймворков, каков правильный способ реализации настраиваемого события? Например, у меня есть пользовательский элемент x-pop-out
, который имеет пользовательское событие pop
я хотел бы все следующие работы:Атрибуты и свойства настраиваемых событий Vanilla Web Component
<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()
подходящий способ выполнения строки из атрибута?
спасибо! это кажется правильным, я задавался вопросом, есть ли способ зарегистрировать определенное событие во всех трех моделях сразу, но я считаю, что вы правы, что нет. Удивительно думать, что каждый веб-компонент с настраиваемым событием должен был бы «eval (string)», но я не вижу никаких предположений о другом. – hapticdata
Фактически использование eval() не связано с настраиваемыми элементами, а с встроенным javascript в атрибутах. Он также используется в стандартных элементах. Вот почему встроенный javascript не разрешен, когда применяется политика ограничения контента. – Supersharp