языковых привязок IDL.
Ссылка в посте - на спецификацию DOM2 интерфейса EventTarget, написанную на IDL ("Язык определения интерфейса"). В качестве языка определения IDL описывает то, что должно быть предоставлено в интерфейсе, написанном на реальном языке, таком как JavaScript, Java, MicoSoft Visual Basic для приложений или C ++, например.
"этот интерфейс может быть получен с помощью специфических для привязки методов приведения к экземпляру интерфейса Node."
- это технический способ сказать «используйте методы и свойства, задокументированные для языка, который вы используете, на узле DOM, а не точную формулировку спецификации, приведенной здесь. Наиболее связывающая из всех, с которой мы наиболее знакомы на веб-страницах». Это, конечно, для JavaScript. «Методы приведения» могут относиться к тому, как реализация будет автоматически выполнять преобразования между языком программирования и DOM по мере необходимости - например, преобразование чисел JavaScript в и из целочисленных представлений в некоторых атрибутах DOM.
EventTargetPrototype
В Firefox это объект в цепочке прототипов узлов DOM, содержащий addEventListener
и связанные функции. Снова это Firefox, вы можете получить к нему доступ как
Object.getPrototypeOf( Node.prototype))
, а затем создайте на нем прототип, используя
Object.create(Object.getPrototypeOf( Node.prototype))
Однако это не сработало для отправки событий. Кажется, требуется дополнительная поддержка (возможно, и интерфейс Node?). Использование HTMLSpanElement
для целевого «объекта узла» работало в Firefox для отправки и прослушивания события без добавления его в DOM:
let a = document.createElement("SPAN");
a.addEventListener( "custom", function() {console.log("wow");}, false);
a.dispatchEvent( new CustomEvent("custom"));
Буду ли я использовать это в рабочем коде? Точно нет. За исключением случаев, когда тысячи тестировали его до меня, в каждом типе браузера, который я мог бы поддержать!