作者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/cn.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