getElementById返回null(扩展名用于修改网站)

时间:2018-08-23 13:07:09

标签: javascript google-chrome google-chrome-extension google-chrome-devtools

我目前正在尝试创建一个Chrome扩展程序扩展 可更改网站 (我购买的IP摄像机的界面,为什么该站点是本地站点,例如192.168.178.70)。 我只想添加一些按钮和类似的东西以添加一些功能。

我用过

document.body.onload

等待所有内容加载完毕,这样我就可以抓取表或div或其他任何东西,然后创建并添加按钮。 但是document.getElementById(“ ipcam_wrapper”)似乎无法正常工作,它返回null。

好吧,我尝试在Google chrome开发人员模式下做同样的事情,但它也返回null。我实际上设法以这种方式获得了一次元素,但由于没有做任何其他事情而无法重新创建它。

只有一个具有特定ID的元素。

Only one element with that ID

我在这里尝试获取元素:

Trying to get the element

那我在做什么错了?

最好的问候

2 个答案:

答案 0 :(得分:1)

感谢Nisarg Shah,我得以解决我的问题。 非常感谢您的帮助!

问题是我尝试访问的元素在iframe中。 也感谢RaYellproviding the necessary code,我得以解决自己的问题:

window.frames['mainframe'].document.getElementById('example')

答案 1 :(得分:1)

我认为是因为文档本身尚未加载。

我通过使用window.onload而不是document.body.onload来修复它,例如:

window.addEventListener("load", ev => {
    // it should work
    document.getElementById("ipcam_wrapper")
});