MMTTMM
2019-03-22 19:15:07
for (let i=0;i<10;i++){ const html = `<webview src="http://www.github.com">i</webview>`; $('.container').append(html) } const webview = document.querySelectorAll('webview') webview[0].addEventListener('console-message', e => { console.log(e.message); if(e.message.indexOf('這次我回答了')!==-1){ alert('這才是我要的數據') } });需要在一個頁面遍歷一個或者多個webview標簽,這個標簽有個事件叫console-message,不定時會返回一些字符串,所以我要實時監聽這個事件,假如事先我知道webview標簽的數量這個就不是問題,但是這個標簽可能是N個,那我就要建立N個addEventListener的監聽事件,完全沒有思路,請教大神給個思路,謝謝
4 回答

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
首先console-message事件不同于click,mouseover事件,它不能冒泡,它也不能手動觸發,它只是個主動返回字符串的事件,在這我只是用了一種很不規范的解決辦法,就是直接for循環遍歷js方法
const webview = document.querySelectorAll('webview')
? ? for(let i=0;i<webview.length;i++){
? ? ? ? webview[i].addEventListener('console-message', e => {
? ? ? ? ? ? console.log(e.message);
? ? ? ? ? ? if(e.message.indexOf('這次我回答了')!==-1){
? ? ? ? ? ? ? ? alert('這才是我要的數據')
? ? ? ? ? ? }
? ? ? ? });
? ? }
雖然知道這樣很不規范,但是目前沒有更好的方法
添加回答
舉報
0/150
提交
取消