谷歌浏览器的一个新特点—关于获取iframe的parent对象
2014-05-14 11:48
316 查看
谷歌浏览器在调试JavaScript脚本方面很方便,今天在使用谷歌浏览器调试代码时无意间发现了一个奇特的问题:Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.,这主要是没有获取iframe所在所在页面的parent的造成的,代码如下:
index.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript">
function test() {
alert('您成功调用了iframe标签所在页面的函数!');
}
</script>
</head>
<body>
<iframe frameborder="1" src='child.html' style="width:50%; height:50%;" ></iframe>
<div style="font-size: 36px; margin-left: 40%; color: red;">iframe标签所在页面</div>
</body>
</html>
child.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<input type="button" onclick="javascript:window.parent.test();" value="调用iframe标签所在页面的函数"/>
<div style="font-size: 21px; margin-left: 40%; color: red;">iframe标签所引用的页面</div>
</body>
</html>
【0分下载代码文件】
如果上面代码在电脑上直接使用谷歌浏览器运行就会出现上面的错误“Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols,domains, and ports must match.”,而使用诸如IE浏览器直接访问则不会出现这种情况;如果将其使用服务器(比如Tomcat)发布一下,再次使用谷歌浏览器通过http访问index.html文件则不会出现这种情况。
总结:如果在本地用file协议使用谷歌浏览器打开含有iframe标签的页面,则被iframe标签引用的页面无法访问iframe标签所在页面的parent对象,除非使用服务器(比如Tomcat)发布一下。
index.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript">
function test() {
alert('您成功调用了iframe标签所在页面的函数!');
}
</script>
</head>
<body>
<iframe frameborder="1" src='child.html' style="width:50%; height:50%;" ></iframe>
<div style="font-size: 36px; margin-left: 40%; color: red;">iframe标签所在页面</div>
</body>
</html>
child.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<input type="button" onclick="javascript:window.parent.test();" value="调用iframe标签所在页面的函数"/>
<div style="font-size: 21px; margin-left: 40%; color: red;">iframe标签所引用的页面</div>
</body>
</html>
【0分下载代码文件】
如果上面代码在电脑上直接使用谷歌浏览器运行就会出现上面的错误“Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols,domains, and ports must match.”,而使用诸如IE浏览器直接访问则不会出现这种情况;如果将其使用服务器(比如Tomcat)发布一下,再次使用谷歌浏览器通过http访问index.html文件则不会出现这种情况。
总结:如果在本地用file协议使用谷歌浏览器打开含有iframe标签的页面,则被iframe标签引用的页面无法访问iframe标签所在页面的parent对象,除非使用服务器(比如Tomcat)发布一下。
相关文章推荐
- js获取iframe的parent对象
- 一个关于el中获取对象属性的错误
- 关于FreeMarker获取一个对象中另一个对象出现的问题以及解决方法
- 关于字符编码、对象传递、文件传递、字符串传递、 TcpClient、TcpListener的又一个应用
- 使用 iframe 获取网页片段的一个好处
- 终于发现自己存在的一个问题:关于用不用VC创建对象的问题
- 今天碰到的一个问题,关于通过基类对象的引用给子类赋值
- 关于.NET AOP的实现中上下文对象的获取
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 我的一个关于获取客户端信息的类
- 关于c++函数对象的一个例子
- 关于获取一个文件夹
- 有关一个 iframe 的问题,关于在 iframe 内的页面内登录成功后,如何由当前页直接转到另一个页面内?
- 一个关于临时对象的BUG
- 今天看StarterKit.Communities中的关于获取路径部分,发现一个问题?难道老外也会不仔细看MSDN,还是?
- 今天需要获取一个网站的web服务反馈回来的数据,找到份不错的帖子关于WebClient类的使用,记录下来·
- 关于.NET AOP的实现中上下文对象的获取
- 关于对象引用的一个例子
- Spring中如何获取和重置一个BeanFactory对象?或者说,如何动态修改Hibernate Configuration?
- 关于IFRAME下的事件运行(兼容谷歌浏览器)