使用iframe遇到document对象"拒绝访问"解决办法一例
2012-02-23 00:38
1266 查看
涉及页面: A.html B.html
关系: A.html页面中增加一个iframe,其src属性指向B.html
问题: A.html页面中的javascript脚本可以获取到iframe所加载的网页的window对象,但访问window.document时会报"拒绝访问"脚本错误,如果使用轮询访问document则一开始会报同样的错误若干次,之后则能正常显示和操作.
已排除原因:
1、两个页面是属于同一站点下的资源文件,不存在跨域访问的情况,且两个页面是同域的,即document.domain属性一致.
2、A.html页面中的iframe不论是动态创建还是固定生成在网页中都没有影响到错误的出现,而唯一不同的是检测iframe的加载状态时,动态创建的时候其状态顺序为uninitialized->loading->loaded->interactive->complete,而固定生成的时候其状态顺序为complete->loading->loaded->interactive->complete.
分析:
在iframe加载状态为completed之后能够正常的访问并修改其src指向的文档对象了,说明iframe加载完毕到父页面加载完毕这个过程仍然也是不能够访问iframe所引入的document文档对象,或者说,父页面呈现的时候iframe都未必完全加载完毕,因此才会出现拒绝访问的错误提示.
修改脚本意见:
假设A.html页面中的iframe的id命名为ifr,则需要调整的代码只有一处
if(document.readyState == "complete" && ifr.readyState == "complete"){
//在此处访问并操作iframe所引入的document文档对象
}
关系: A.html页面中增加一个iframe,其src属性指向B.html
问题: A.html页面中的javascript脚本可以获取到iframe所加载的网页的window对象,但访问window.document时会报"拒绝访问"脚本错误,如果使用轮询访问document则一开始会报同样的错误若干次,之后则能正常显示和操作.
已排除原因:
1、两个页面是属于同一站点下的资源文件,不存在跨域访问的情况,且两个页面是同域的,即document.domain属性一致.
2、A.html页面中的iframe不论是动态创建还是固定生成在网页中都没有影响到错误的出现,而唯一不同的是检测iframe的加载状态时,动态创建的时候其状态顺序为uninitialized->loading->loaded->interactive->complete,而固定生成的时候其状态顺序为complete->loading->loaded->interactive->complete.
分析:
在iframe加载状态为completed之后能够正常的访问并修改其src指向的文档对象了,说明iframe加载完毕到父页面加载完毕这个过程仍然也是不能够访问iframe所引入的document文档对象,或者说,父页面呈现的时候iframe都未必完全加载完毕,因此才会出现拒绝访问的错误提示.
修改脚本意见:
假设A.html页面中的iframe的id命名为ifr,则需要调整的代码只有一处
if(document.readyState == "complete" && ifr.readyState == "complete"){
//在此处访问并操作iframe所引入的document文档对象
}
相关文章推荐
- Ntfs 分区的硬盘卷删除了权限重新恢复后"拒绝访问"![解决办法]
- 无法打开物理文件 "xxx.mdf"。 操作系统错误5:"5(拒绝访问。)" 解决方法 操作系统错误 5:"5(拒绝访问。)"的解决办法
- 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- [ASP.NET]"对路径的访问被拒绝" 解决办法
- 使用adb push命令遇到的“read only”或者“out of memory"的解决办法
- "访问由于凭据无效被拒绝"的解决办法
- 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- SQL Server无法打开物理文件,操作系统错误 5:"5(拒绝访问。)的解决办法
- 为何无法打开administrator目录?提示“无法访问c:/documents and settings/administrator,拒绝访问"解决办法
- Asp.net "对路径的访问被拒绝" 解决办法
- 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"的解决办法
- Asp.net "对路径的访问被拒绝" 解决办法(不是文件的一部分)
- sqlserver 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- ArcGIS API for Flex制作程序发布后出现错误:"访问 URL 时遇到安全性错误" 解决办法尝试(学习笔记)
- 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- 您可能没有权限使用网络资源,请......您是否有访问权限"的解决办法
- 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"的解决办法
- 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- WebService中使用DataTable造成"无法序列化"的解决办法
- 使用input type=file标签进行文件上传时,在安卓手机中的微信浏览器中不能调起相机,但是在苹果手机中的微信浏览器中可以调用相机。解决办法很简单, <input type="file" nam