使用地图时有多个iframe,不能成功使用地图,解决办法
2019-12-25 本文已影响0人
这是这时
引用城建地图,发现放大缩小按钮 都不能正常使用:
地图需要一个封装好的js文件,还需要 配合一个iframe标签,才能使用,js文件里面有很多方法,调用城建地图用的。当我引入后地图可以显示,但是方法不能执行,首先我还以为是地图的问题,在本地新新建一个html文件,把js文件引入,把ifame引入进去,新建一个btn按钮,通过document.querySelector('#btn') 获取这个按钮 给这个按钮一个点击事件,调用js里面的方法,发现可以放大缩小操作,证明地图是没问题的。然后我在方法里面打印 也打印不出来东西,查看js有没有引入进来(newwork ---js) 发现也能看到引入的js文件,然后我看了一下他们封装的iframe js文件,发现有个事通过类名去获取, 发现有这么一段代码:document.getElementsByTagName('iframe')[0].contentWindow;
知识点:document.getElementById("ii").contentWindow
//得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了; 如果是jquqry需要在后面加个 [0]
document.getElementsByTagName('iframe')[0].contentWindow; 获取一组ifrmae的第一个
然后在全局里面搜索iframe,发现项目有两个iframe标签,同事写的,我把同事的注释了,我点击地图的放大缩小,就能正常了。然后我把我的iframe加个id
document.getElementById("cd-map")[0].contentWindow
代码改成这样,同事的代码解除注释,地图的放大和缩小功能就正常的了;