作者tk930732 (吃吃不吃魚)
看板Ajax
標題[問題] 用autofill寫js undefined
時間Mon May 7 01:58:59 2018
我用autofill和tampermonkey這兩個chrome的插件
在裡面寫javascript 其中code如下
document.getElementsByClassName("plus")[0].click();
當我用console直接打這行 是有反應的 button有按下去
但當我把這行寫在插件內 卻有error且button無反應
用console.log印出來都是 undefinded
(Cannot read property 'click' of undefined)
兩個插件都是一樣的結果
如果改寫成 .item(0).click();
印出來則是會null
如果只印 document.getElementsByClassName("plus")
是正常的 HTMLCollection[....]
網頁本身是用angular 不知道是否有影響
換什麼方法寫能解決問題 或是套件或網頁本身不支援?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.229.81
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1525629544.A.58C.html
1F:→ jherk: plus元素是動態新增的嗎?是的話你綁定事件也要在元素載入05/07 02:54
2F:→ jherk: 之後再動態新增05/07 02:54
不是喔 plus已經存在
單純印 document.getElementsByClassName("plus") 不指定第幾個是可以的
只要指定[0] 就變成undefined
※ 編輯: tk930732 (111.250.229.81), 05/07/2018 03:51:13
3F:推 icydream: 檢視一下console裡的HTMLCollection是否有element05/07 08:51
有喔,所有的plus都在
※ 編輯: tk930732 (111.250.229.81), 05/07/2018 12:18:07
4F:→ Kenqr: 用angular的話應該是動態新增的 05/07 13:52
5F:→ Kenqr: 試試setTimeout再click? 05/07 13:52
喔喔成功了 原來angular是動態新增 沒玩過真的不太了解 感謝以上各位大大
※ 編輯: tk930732 (111.250.229.81), 05/07/2018 16:39:51