Javascript iframe resizer IE11关于调整大小和超链接的问题
关于iframe大小调整器,我有几个小问题可从Javascript iframe resizer IE11关于调整大小和超链接的问题,javascript,jquery,iframe,Javascript,Jquery,Iframe,关于iframe大小调整器,我有几个小问题可从https://github.com/davidjbradshaw/iframe-resizer 如果使用Restore Down调整浏览器的大小,首先一切看起来都正常,如果手动进一步向下调整浏览器的大小,iframe会根据分辨率调整大小,并会显示一些额外的填充 然而,如果你随后尝试调整浏览器窗口的大小并增加其宽度,填充会变得更加明显,如果你真的将窗口最大化,那么填充是荒谬的 <iframe src="footer" style="width:
https://github.com/davidjbradshaw/iframe-resizer
如果使用Restore Down调整浏览器的大小,首先一切看起来都正常,如果手动进一步向下调整浏览器的大小,iframe会根据分辨率调整大小,并会显示一些额外的填充
然而,如果你随后尝试调整浏览器窗口的大小并增加其宽度,填充会变得更加明显,如果你真的将窗口最大化,那么填充是荒谬的
<iframe src="footer" style="width: 100%; border: 0" scrolling="no"></iframe>
<script type="text/javascript" src="/Scripts/iframeResizer.min.js"></script>
<script type="text/javascript">
iFrameResize({
log: false,
enablePublicMethods: true,
});
</script>
iFrameResize({
日志:错误,
enablePublicMethods:true,
});
还有一种方法可以让iframe中的本地超链接服务器实际刷新父窗口吗
任何帮助都将不胜感激:-)
接下来,我找到了一个解决方法,尽管它并不理想:
<script type="text/javascript">
iFrameResize({
log: false,
enablePublicMethods: true
});
$(window).resize(function () {
location.reload();
});
</script>
iFrameResize({
日志:错误,
enablePublicMethods:true
});
$(窗口)。调整大小(函数(){
location.reload();
});
这确实解决了向上调整大小时的填充问题,但会强制页面在调整大小时重新加载
下面的代码解决了向上调整大小时的额外填充问题,无需重新加载:
<script type="text/javascript">
$('iframe').iFrameResize({
log: false, autoResize: false,
sizeWidth: true
});
</script>
$('iframe')。iframesize({
日志:false,自动调整大小:false,
尺寸:对
});
但是,某些大小的调整不会显示所有iframe内容
不幸的是,到目前为止,页面重新加载是唯一能够真正解决这两个问题的方法,我希望有人有一个更优雅的解决方案能够在不重新加载页面的情况下解决问题,我的解决方案代码如下:
<script type="text/javascript">
$('iframe').iFrameResize({
log: false
});
function correctHeight() {
var iFrameId = document.getElementById('iFrameResizer0');
$(window).resize(function () {
$(iFrameId).attr('style', 'width: 100%').attr('height', '0px');
var contentHeight = iFrameId.contentWindow.document.body.scrollHeight + 'px';
$(iFrameId).attr('height', contentHeight).css('height', contentHeight);
});
}
window.addEventListener("resize", function () {
correctHeight();
}, false);
</script>
$('iframe')。iframesize({
日志:false
});
函数修正高度(){
var iFrameId=document.getElementById('iFrameResizer0');
$(窗口)。调整大小(函数(){
$(iFrameId).attr('style','width:100%').attr('height','0px');
var contentHeight=iFrameId.contentWindow.document.body.scrollHeight+'px';
$(iFrameId).attr('height',contentHeight).css('height',contentHeight);
});
}
addEventListener(“调整大小”,函数(){
校正高度();
},假);
我不知道这一特定策略的细节,但我使用post消息在主机和子机之间进行通信。我认为这一点有点太复杂了,只是在a标记中添加了target=“\u parent”
,解决了该特定问题。