调整外部网站内容的大小以适应iFrame宽度
Resize external website content to fit iFrame width
我有一个网页,里面有两个iFrame。它们都有固定的宽度和高度。我正在里面加载外部网站。如何调整这些外部网站的宽度以适应iFrame(就像移动浏览器通过更改视口所做的那样)?
您可以为您的iframe设置特定的宽度和高度(例如,这些宽度和高度可以等于您的窗口尺寸),然后对其应用缩放转换。缩放值将是您的窗口宽度和您想要设置到iframe的尺寸之间的比率。
例如
<iframe width="1024" height="768" src="http://www.bbc.com" style="-webkit-transform:scale(0.5);-moz-transform-scale(0.5);"></iframe>
调整网站高度的提示。但您可以更改为2个网站。
以下是我使用外部网站调整iframe大小的代码。你需要在父(带有iframe代码)页面和外部网站中插入一个代码,所以,如果你没有编辑外部网站的权限,这将不起作用。
- local(iframe)页面:只需插入一个代码片段
- 远程(外部)页面:您需要一个"body-onload"和一个保存所有内容的"div"。正文需要设置为"margin:0"
本地:
<IFRAME STYLE="width:100%;height:1px" SRC="http://www.remote-site.com/" FRAMEBORDER="no" BORDER="0" SCROLLING="no" ID="estframe"></IFRAME>
<SCRIPT>
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent,function(e) {
if (e.data.substring(0,3)=='frm') document.getElementById('estframe').style.height = e.data.substring(3) + 'px';
},false);
</SCRIPT>
你需要这个"frm"前缀来避免其他嵌入代码(如Twitter或Facebook插件)的问题。如果您有一个普通页面,您可以删除两个页面上的"If"answers"frm"前缀(script和onload)。
远程:
您需要jQuery来实现大约"真实"页面高度。我无法理解如何使用纯JavaScript,因为使用body.scrollHeight或相关工具向下调整高度(从高到低)时会遇到问题。由于某些原因,它将始终返回最大的高度(预先确定尺寸)。
<BODY onload="parent.postMessage('frm'+$('#master').height(),'*')" STYLE="margin:0">
<SCRIPT SRC="path-to-jquery/jquery.min.js"></SCRIPT>
<DIV ID="master">
your content
</DIV>
因此,父页面(iframe)的默认高度为1px。脚本从iframe中插入一个"等待消息/事件"。当收到一条消息(post message),并且前3个字符是"frm"(以避免上述问题)时,将从第4位获取数字,并设置iframe高度(样式),包括"px"单位。
外部站点(加载在iframe中)将用"frm"和主div的高度(在本例中为id"master")向父站点(opener)"发送消息"。postmessage中的"*"表示"任何来源"。
希望这能有所帮助。对不起我的英语。
- 获取iframe内容的宽度-高度
- 调整外部网站内容的大小以适应iFrame宽度
- 如何告诉 iframe 将图像链接调整为给定的宽度和高度
- 根据内容设置 iFrame 宽度和高度
- 更改花式框iframe的大小-我可以更改宽度,但不能更改高度
- 查找 iframe 父宽度
- 模态框高度宽度根据 iframe 的高度宽度进行固定
- Facebook评论插件在iframe中加载一个iframe,导致宽度不响应
- 如何适应iframe宽度的外部网站
- 是否可以从内部更改iframe的宽度/高度
- 在跨域环境中设置IFRAME的高度和宽度
- 如何设置iframe内容的高度和宽度
- 如何输出宽度为“0”的iframe;100%”;或者宽度=“&”;.不是,宽度=“;100〃;
- 如何设置iframe的高度和宽度
- 如何用Javascript调整Iframe的宽度?
- 限制iframe宽度
- 修改iframe宽度
- IFrame宽度随CSS和JavaScript而变化
- 在 iframe.style.width 的情况下设置 iframe 宽度不起作用
- 如何在单击图像时增加iframe宽度