未捕获的SecurityError:使用origin" null"阻止了一个帧。从访问带有原点" null"的框架。协议,域和端口必须匹配

时间:2014-09-17 14:13:41

标签: javascript iframe same-origin-policy

我在页面上设置了iframe,并使用下面的脚本删除了双导航栏。它适用于任何浏览器,但在Chrome上无效,它显示双垂直导航栏!

function calcHeight() {
    //find the height of the internal page
    var the_height = document.getElementById('the_iframe').contentWindow.
                     document.body.scrollHeight;

    //change the height of the iframe
    document.getElementById('the_iframe').height = (the_height + 30) +"px";
}

我在Chrome中收到2条错误消息:

  • 第一条错误消息:

      

    Uncaught SecurityError:阻止了一个包含起源的帧" null"从访问带有原点" null"的框架。协议,域和端口必须匹配。

    并指出错误:

    var the_height = document.getElementById('the_iframe').contentWindow.
                     document.body.scrollHeight;
    
  • 第二条错误消息,它位于jquery-1.10.2.js:

      

    Uncaught SecurityError:无法阅读' contentDocument'属性来自' HTMLIFrameElement':使用origin" null"阻止了一个框架从访问带有原点" null"的框架。协议,域和端口必须匹配。

    它指出错误消息:

    elem.contentDocument || elem.contentWindow.document : 
    

2 个答案:

答案 0 :(得分:1)

尝试在您的计算机上设置服务器并从那里测试您的页面,而不是在本地文件系统上。

如果您有Python 2,请执行python -m SimpleHTTPServer [port]
在Python 3中,执行python -m http.server [port]
这将在localhost:[port]上设置服务器。然后启动浏览器并导航到您的页面,看看问题是否消失。

答案 1 :(得分:-3)

您可以尝试将document.domain = 'yourdomain.com'添加到您的页面