记一次IE10/9中遇到的iframe跨域问题

无意中用IE9打开了邮箱项目(凡科邮箱),点击写信,发现富文本编辑器出不来,报错了。最后发现是跨域导致,IE10和9都会,这两个核对于iframe的同源判定策略有点坑爹,不按套路来。先说问题和解决方法。

问题: 报错如下,动态创建iframe后,获取其document时“拒绝访问”,应该就是跨域了。
在这里插入图片描述
在这里插入图片描述

分析: 这个iframe只是个容器,没有给它src(所以iframe的document.domain可能有问题)。跨域最先想到的就是给iframe的document.domain设置和父页面相同。
然而这里获取其document就已经被拒绝,根本无法通过document.domain设置。

解决: 用一种“旁门左道”来解决。你不是没有src嘛?又不能随便给你设置src(iframe会发生跳转,内容改变),那就通过src让你执行一下js来设置domain,代码如下:

iframe.src = "javascript:void((function(){document.open();document.domain='"+ document.doma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值