使用src调整HTML Iframe的大小我可以't控制

Resizing HTML Iframe using a src I can't control

本文关键字:我可以 控制 调整 src HTML Iframe 使用      更新时间:2024-02-10

我正在开发一个应用程序,该应用程序提供包含API会话令牌的URL。此URL将允许应用程序的用户通过API查看第三方数据库中的搜索结果。

我面临的问题是,当在iframe中显示结果(URL)时,由于iframe的滚动条,它看起来非常难看。我试着得到了通常的谷歌结果,但我发现我很困惑如何扩展iframe的高度以匹配传入的内容。

我找到了一个我希望发生的事情的例子,但在尝试复制代码时,我运气不佳。

有问题的链接。。。正如您所看到的,页面将iframe加载到一个基本的HTML表中,并进行扩展以适应iframe中内容的大小。

以下是HTML的源代码:

<html>
<body>
<table width="100%" border=1>
    <tr><td>Header</td></tr>
    <tr><td>Navigation</td></tr>
    <tr><td>
        <iframe onload="resize(this)" src="/test/phpinfo.php">
        </iframe>
    </td></tr>
    <tr><td>footer</td></tr>
</table>    
<script>
function resize(elem){
    var outer=elem;
    var inner=elem.contentDocument.documentElement; 
    outer.style.border="0";
    outer.style.overflow="hidden";
    outer.style.height=Number(inner.scrollHeight+10)+"px";
    outer.style.width=Number(inner.scrollWidth+10)+"px";
}
</script>
</body>
</html>

没什么特别的吧?但是代码的复制(显然是更改src)没有任何作用。我觉得我在这里吃疯狂的药,这应该是两秒钟的工作,但对我不起作用。这都是客户的事情,对吧?服务器上没有发生巫毒魔法。

女士们,先生们,我做错了什么,或者我该怎么做才能更好呢?请记住,我没有能力影响iframe中的HTML,因为它是通过API提供的,我不能触摸它

谢谢

编辑:这就是它不适用于同源策略的原因。

只有当iframe origin和iframe src origin相等且匹配时,才能使用javascript访问iframe contentDocument

否则浏览器不允许您访问内部contentDocument

Blocked a frame with origin "http://example.de" from accessing 
a frame with origin "http://otherorigin.example.de". Protocols, 
domains, and ports must match. 

您发布的示例页面来源

http://frank.bridgewater.edu/test/iframeResize/

和iframe-src起源

http://frank.bridgewater.edu/test/phpinfo.php

匹配(原点相等)。因此,它在这里工作,脚本可以访问iframe contentDocument

相关文章: