0

我的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();

这在本地不工作,但在网上工作正常 问题 我在 24.0 版的 Firefox 上在线运行它运行良好,但在我的 2 朋友电脑上,具有相同版本的滚动即将到来。

4

3 回答 3

0

不过我不确定,但我想问题出在这里:数值 + 字符串可能会导致错误。

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

您可以改为将其写为

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

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

于 2013-10-08T13:30:26.453 回答
0

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

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

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

dr["html"] ="http://www.stackoverflow.com/file/1.html"
于 2013-10-09T11:09:41.743 回答
0

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

if(document.getElementById(id))
{

}
于 2013-10-08T13:21:58.127 回答