代码之家  ›  专栏  ›  技术社区  ›  Victor

如何在firefox上使用parent.parent.document.getElementById??asp.net公司

  •  1
  • Victor  · 技术社区  · 11 年前

    我有一个javascript函数,可以在Internet Explorer上工作。。。但在firefox和googlechrome上都不起作用。

    这是一个例子。。。

    function CerrarFrame(src, id, tamArreglo)
    {
        parent.parent.document.getElementById("workSheet").src = src;
    }
    

    现在是asp形式

    <frameset rows="41, *" frameborder="0" framespacing="0" name="frmMain" id="frmMain">
        <frame name="topForm" src="Header.aspx" marginheight="0" marginwidth="0" scrolling="no" noresize>
    
        <frameset cols="168,*" frameborder="0" framespacing="0" id="frmBody">
            <frame name="frmMenu" id="frmMenu" src="MenuFrameNew.aspx?idUser=<%Response.Write(Session["idUser"]);%>&administrator=<%Response.Write(Session["administrator"]);%>&idCorp=<%Response.Write(Session["idCorporative"]);%>&file=<%Response.Write(Session["fileLogo"]);%>" marginheight="0" marginwidth="0" scrolling="no" noresize>
    
            <frameset id="frmContent" name="frmContent" rows="*,21" frameborder="0" framespacing="0">
                <frame name="workSheet" marginheight="0" marginwidth="0" src="Body.aspx" scrolling="auto">
                <frame name="btm" marginheight="0" marginwidth="0" src="footer.htm" scrolling="no">
            </frameset>
        </frameset>
    </frameset>
    

    这个javascript在IE上可以正常工作,但当我在FireFox上使用它时,会出现以下错误:

    TypeError: parent.parent.document.getElementById("workSheet") is null
    

    有办法解决这个问题吗? 谢谢

    1 回复  |  直到 11 年前
        1
  •  1
  •   ZER0    11 年前

    看来你想改变 src 框架的属性 workSheet 。但是,该框架没有 id 但只是一个 name 这就是为什么它在所有浏览器中都失败的原因,但IE:IE至少在某些版本的IE中没有任何区别 名称 属性和 身份证件 属性,这就是它返回对象的原因。您可以添加 身份证件 到框架(正如您所做的 frmContent )或使用 frames 集合,例如:

    parent.parent.frames["workSheet"].src = src;
    

    使用 名称 。请参见: https://developer.mozilla.org/en-US/docs/DOM/window.frames .

    希望能有所帮助。