从Iframe获取父级宽度不适用于Chrome或Opera浏览器

时间:2017-04-25 18:17:05

标签: javascript html

我在这里找到了一行代码:var loggingHandler = new LoggingHandler(); var responseContentProcessingHandler = new ResponseContentProcessingHandler(); loggingHandler.InnerHandler = responseContentProcessingHandler; var client = new HttpClient(loggingHandler); How can I get a parent window's height from within iFrame using jQuery?,用于从iframe中查找父页面的宽度。

适用于Edge,IE 11,Firefox,但不适用于Chrome或Opera。

问题有解决办法或解决办法吗?

实施例

的IFrame

HTML

parent.document.body.clientWidth

JS

<body onresize="bodyRePr()">
    <script src="examplescript.js"></script>
    [...]
</body>

我在Opera中打开页面时看到此错误,不确定它的含义。 enter image description here

请求:

html是另一个页面,包括iframe

function bodyRePr(){
    if (parent.document.body.clientWidth > 720){
        document.getElementById("example").style.width = "460px";
    }
    else{
        document.getElementById("example").style.width = "100%";
    }
}

CSS

<body onscroll="toggleMenu()" onload="startup()" onload="getBrowserInfo()" onresize="bodyRe()">
    [...]
    <nav id="profileMenu">
        <iframe id="profileMenuIframe"></iframe>
        <div onclick="closeProfileMenu()" class="closeBtn">&#9587;</div>
    </nav>
[...]
</body>

1 个答案:

答案 0 :(得分:0)

您无法使用文件://网址在Chrome中测试框架/父参考离线,如示例所示。

您在离线测试时也无法引用在线资源,因为这将是跨站点脚本。

要测试父框架引用,您需要使用支持脱机URL的浏览器,就像它支持在线URL一样,或者使用HTTP服务器测试父框架和框架。