日期:2014-05-17  浏览次数:20540 次

js获取iframe的src的内容高度
就是ifamre自适应高度,
default.aspx代码
<div id="middle">
    <iframe id="middle_main" src="main.aspx">
    </iframe>
   </div>

 main.aspx代码
<body>
    <form id="form1" runat="server">
    <div id="main">
    
    </div>
    </form>
</body>

我要在default.aspx中用js获取main.aspx中这个main的div的高度,有没高手知道啊?我百度一大堆都不行
------最佳解决方案--------------------
default.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function dd() {

            alert(frames[0].getmain());
            return false;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="middle">
    <iframe id="middle_main" src="main.aspx">
    </iframe>
   <button onclick="dd();">sadfsadf</button>
   </div>

    </form>
</body>
</html>


main.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        var getmain = function () {
           return document.getElementById("main").offsetHeight;
        };
    
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="main" style="width:100px; height:100px; background-color:Silver">
    
    </div>
    </form>
</body>
</html>

------其他解决方案--------------------
从外部获取不到,你不用找了。

从安全角度考虑(避免流氓钓鱼网站嵌入别人的网页),一个网页只能从其内部获取外部(上层)frame的高度,而不是反过来的。
------其他解决方案--------------------
Jquery
$("#middle_main").contents().find("#main").height()

------其他解决方案--------------------
当然啦,随着最近两年一些三流浏览器晋升为一流市场占有率的浏览器,或许也会有很多破坏以前十几年的由浏览器老大所制定的工业“行规”的一些新的浏览器,许多安全特性可能也会被打破。
------其他解决方案--------------------
你可以这样做:在你的main.aspx中去与上层default.aspx通讯,获得有关的参数,然后设置自己的样式(高度等等)。这是可以做到“自适应”的效果的!
------其他解决方案--------------------
jquery 能获取iframe内的高度
------其他解决方案--------------------
这个看起来不错呢