electron 加载js问题

第三方网站在浏览器中打开一切正常,但是electron封装后打开其中某些页面会报错:Cannot read property 'addEventlistener' or null。 这个问题差了一下说是js加载的问题,但是第三方的资源没法修改,该如何从electron中做修改,请指教!

这个错误表示没有获取到页面上的dom元素。

看看页面上元素的id或class是否写错了。


嗯是这个样子,我目前的问题是在浏览器中访问没有任何问题,只有再electron中才这样。

addEventlistener这个方法不知道你是写的原生js还是用的什么js库,一般addEventlistener在浏览器中是document调用的,但是electron中不是浏览器环境所以报错了

是原生的,但是因为是合作第三方网站没法修改什么,所以有没有什么办法在我这边electron中进行修正

electron不也是和谷歌一样基于Chromium的吗,有没有什么chrome上的扩展插件可以用在electron上,以解决这个问题,求教

没有做过electron开发,只是推测可能是这个原因,也许是页面加载问题,导致对应的HTML标签还没有渲染出来就已经执行了addEventlistener,或者HTML标签没能正确渲染(加载)导致的

而且诡异的是,有好几个点击事件都是通过动态实现监听绑定的,其他按钮都没有问题

应该是代码执行的时候元素还不存在。解决方法:

1.把addEventlistener这部分代码放在一个setTimeout延迟执行

2.可以百度一下mutationObserver监控元素变化 等你要的元素有了之后 再执行这部分代码

electron加载的是远程网站,除了启动时可以做一些操作没办法的对第三方的网站做任何操作