求教js能否获取iframe里面的通过src获取的内容;
其中src可能存在跨域。
现有的获取方式
var test = document.getElementsByClassName("iframeItem");
var content =test[0].contentDocument||test[0].contentWindow.document;
但是会报错跨域:
Blocked a frame with origin "http://xxx.com" from accessing a cross-origin frame
求大神指教
跨域是无法解决的,如果有你有两个网站的权限的话,可以通过一些 hack 的方式绕过来通信。
如 window.frames 属性(IE并不能全兼容)
或者 https://github.com/ternarylabs/porthole
这种情况一般涉及到跨域的话,都不去直接操作dom,都会想html5的on/postmessage一样。可以利用事件进行通讯。
可以参照这里有的https://github.com/YataoZhang/xMan 看frame方法。就是处理这种情况的。
我最近也遇到了这个问题,因为我需要获得iframe的高度,但是取不到,就无法撑开iframe层
我查了很多资料,但是都被跨域的问题给难住了。。
最后我看到了小tip:iframe高度动态自适应
可以利用iframe的window.top.location实现跨域,将iframe的参数通过url传给父页面
但是这个方法也不是很好,现在还没有找到更好的办法
跨域。。不能获取。。除非跨域的网站你有控制权postmessage 传递信息。。