• 使用iframe遇到document对象"拒绝访问"解决办法一例


    涉及页面: 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文档对象
    }
  • 相关阅读:
    ABAP-Spotlight on ABAP for SAP HANA – Again
    ABAP-ABAP Development
    ABAP-Performance Guidelines for ABAP Development on the SAP HANA Database
    ABAP-Getting Started with ABAP Core Data Services (CDS)
    ABAP-Technology and Runtime Environment
    ABAP-Test and Analysis Tools
    ABAP-Connectivity Wiki
    python爬虫
    python爬虫
    python爬虫
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/1237245.html
Copyright © 2020-2023  润新知