【问题标题】:Resize iframe when its content dynamically changes (ex: ajax load)当内容动态变化时调整 iframe 的大小(例如:ajax 加载)
【发布时间】:2014-05-06 12:26:00
【问题描述】:

当它的 url 源高度发生变化时,我可以使用以下代码调整 iframe 的大小:

<iframe src="source" width="625" height="100%" name="CHANGETHIS" id="CHANGETHIS" marginheight="0" frameborder="0" onLoad="autoResize('CHANGETHIS');"></iframe>

<script language="JavaScript">

    function autoResize(id){
        var newheight;
        var newwidth;

        if(document.getElementById){
            newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
            newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
        }

        document.getElementById(id).height= (newheight) + "px";
        document.getElementById(id).width= (newwidth) + "px";
    }

</script>

但是我不知道当它的内容由于动态变化而发生变化时如何调整它的大小。例如,一个 jQuery 动态变化。 有没有办法触发这个 autoResize() 函数来避免在导航过程中因为这个动态内容变化而出现滚动?

注意:我可以操纵框架站点。

谢谢

【问题讨论】:

    标签: javascript html iframe dynamic


    【解决方案1】:
    var autoResEl = autoResize('#myElement');
    setInterval( autoResEl , 400 );
    

    【讨论】:

    • 谢谢 Roko,使用 setInterval() 或面向事件监听器的解决方案有什么区别?谢谢。
    • 我不知道您是否可以在您的 iframe(包含)页面中操作 JS。在这种情况下,您可以嗅探绑定到 iframe.contentWindow || iframe.contentDocument 的更改
    • 是的,我正在构建我自己的页面,因此操作已构建的页面不会有问题。你能具体说明一下怎么做吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2011-09-15
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多