0
我很想知道什麼類型的事件處理API瀏覽器,以及我如何在一些根本不處理DOM的JavaScript邏輯中使用它們,所以我給了Event
一個嘗試。瀏覽器中的事件處理API除了DOM嗎?
顯然,Event
和CustomEvent
意味着只與DOM中使用,我沒有看到任何其他的API,所以我最終爲了溝通創建一個「虛擬」 <div>
元素爲事件處理(事件目標)代碼兩個部分,像之間:
// shared file
export
let eventHandler = document.createElement('div')
// ... some other file
import {eventHandler} from './sharedFile'
eventHandler.addEventListener('foobar', function(event) {
console.log('foobar event fired!')
})
// ... some other file
import {eventHandler} from './sharedFile'
console.log('About to trigger "foobar" event.')
eventHandler.dispatchEvent(new Event('foobar'))
這工作,但你可以看到,我創建了一個<div>
元素我不打算在所有的DOM使用,只用它作爲事件處理機制。
創建一個我不打算用作DOM元素的DOM元素似乎很浪費。有沒有其他的方式來使用本地瀏覽器API來做到這一點,還是我們必須創建自己的(或使用)事件庫,以避免創建一個虛擬元素?
這就是我想,我們需要實現它自己。如你所示,這很容易做到。我很想知道爲什麼W3C會將瀏覽器API連接到DOM,而不是使其更適用於非DOM用例。 – trusktr