我使用“数据”URI以编程方式创建iframe:
<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>
此框架加载正常,但似乎使用iframe以编程方式进行跨域安全检查.
var iframeDoc = document.getElementById('myFrame').contentwindow.document; $(iframeDoc.body).find('h1').text('Changed');
在Chrome和Safari中抛出错误:
Unsafe JavaScript attempt to access frame with URL
data:text/html;charset=utf-8,… from frame with URL http://… The
frame requesting access has a protocol of ‘http’,the frame being
accessed has a protocol of ”. Protocols must match.
这是一个显示安全错误的小提琴:http://jsfiddle.net/bhGcw/4/
Firefox和Opera不会抛出此异常,并允许更改iframe内容.似乎Webkit看到一个空白的数据URI协议,并将其视为跨域违规.
有没有办法解决?
解决方法
原文地址:https://www.jb51.cc/js/151014.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。