3

我在获取从 iframe 调用的页面高度时遇到了非常奇怪的错误。我浏览了谷歌,还检查了与此“拒绝访问属性文档的权限”相关的其他 Stackoverflow 帖子,但尚未找到任何解决方案。我有一个指向另一台服务器的网站。我在 iframe 上收到此错误。让我提供代码

jQuery

$(document).ready(function()
    {
        // Set specific variable to represent all iframe tags.
        var iFrames = document.getElementsByTagName('iframe');

        // Resize heights.
        function iResize()
        {
            // Iterate through all iframes in the page.
            for (var i = 0, j = iFrames.length; i < j; i++)
            {
                // Set inline style to equal the body height of the iframed content.
                iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';
            }
        }

        // Check if browser is Safari or Opera.
        if ($.browser.safari || $.browser.opera)
        {
            // Start timer when loaded.
            $('iframe').load(function()
                {
                    setTimeout(iResize, 0);
                }
            );

            // Safari and Opera need a kick-start.
            for (var i = 0, j = iFrames.length; i < j; i++)
            {
                var iSource = iFrames[i].src;
                iFrames[i].src = '';
                iFrames[i].src = iSource;
            }
        }
        else
        {
            // For other good browsers.
            $('iframe').load(function()
                {
                    // Set inline style to equal the body height of the iframed content.
                    this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
                }
            );
        }
    }
);

和 IFrame

<iframe style="margin-bottom: 16px;" src="ourteamnav/first.php" frameborder="0" scrolling="no" width="597" height="240"></iframe> 

我收到“访问属性文档的权限被拒绝”错误,因此高度不是根据其中的文档高度来的。然后我尝试了以下代码

function resizeIframe(ifRef) 
        {
            var ifDoc;
            //alert(ifRef);

            try
            { 
                ifDoc = ifRef.contentWindow.document.documentElement; 
            }
            catch( e )
            {
                try
                { 
                ifDoc = ifRef.contentDocument.documentElement; 
                }
                catch( ee ){} 
            }
            var doc = ifRef.height;
            //alert(doc);
            if(ifDoc)
            {
                ifRef.height = 1; 
                ifRef.style.height = ifDoc.scrollHeight+'px';               
            }
        }

和 iframe

<iframe onload="resizeIframe(this)" style="margin-bottom: 16px;" src="ourteamnav/first.php" frameborder="0" scrolling="no" width="597" height="240"></iframe`> 

在这种情况下,我在 javascript 上没有发现错误,但它不起作用。但是奇怪的是,他们俩都在我的本地服务器上工作,并且当现在存在代码的服务器没有指向另一个服务器时也在工作。(跨站点脚本)。

请帮我解决这个问题。

我使用的参考资料

错误:访问属性“文档”的权限被拒绝

错误 document.form 在 javascript 中未定义

http://davidwalsh.name/iframe-permission-denied

https://sqa.stackexchange.com/questions/1453/how-to-fix-permission-denied-to-access-property-document

http://sahi.co.in/forums/discussion/2898/error-permission-denied-to-access-property-document-with-ckeditor/p1

http://www.codingforums.com/showthread.php?t=236484

4

1 回答 1

-2

这称为 XSS 异常。错误:错误:访问属性“文档”的权限被拒绝

不幸的是,您想要做的——在与父域不同的站点上操作 iframe 的内容或窗口——是不允许的。时期。

于 2013-02-23T05:30:13.007 回答