自动调整iframe无法正常工作

时间:2013-10-08 13:15:55

标签: c# asp.net

我的HTML代码

<script language="JavaScript" type="text/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>

<asp:DataList ID="dtlhtml" runat="server" Width="100%">
    <ItemTemplate>
        <table cellpadding="0" cellspacing="0" width="100%">
            <tr>
                <td>
                    <iframe src='<%#Eval("html") %>' width="713" height="250" id="iframe1" frameborder="0" onload="autoResize(this.id);"></iframe>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
页面加载事件

.cs代码

DataTable dt1 = new DataTable();
dt1.Columns.Add("html");
DataRow dr = dt1.NewRow();
dr["html"] = "";//Any dynamic url path
dt1.Rows.Add(dr);
dtlhtml.DataSource = dt1;
dtlhtml.DataBind();

这不是在当地工作,但在网上工作正常 的问题 我在Firefox上运行它,版本24.0运行正常,但在我的2朋友电脑上滚动相同版本。

3 个答案:

答案 0 :(得分:0)

您的if条件不正确,请执行以下操作

if(document.getElementById(id))
{

}

答案 1 :(得分:0)

我不确定,但我猜问题就在于:数字值+字符串可能导致错误。

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

您可以将其写为

   document.getElementById(id).height = newheight;
    document.getElementById(id).width = newwidth;

也可以删除'px',因为默认长度仅以像素为单位。

答案 2 :(得分:0)

嘿,我的问题解决了,因为我正在给路径

dr["html"] = "http://stackoverflow.com/file/1.html";

但正确的方法是给我的iframe调用html页面的路径是

dr["html"] ="http://www.stackoverflow.com/file/1.html"