2013-03-05 42 views
1

我有一個JavaScript函數,可以在Internet Explorer上工作......但在Firefox或Google Chrome上無法使用。如何在Firefox上使用parent.parent.document.getElementById? asp.net

這裏的例子...

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

看起來你想要改變框架的src屬性。但是,該框架沒有id而只是name。這就是爲什麼它在所有瀏覽器中都失敗,但是IE:IE至少有一些IE版本在name屬性和id屬性之間沒有任何區別,這就是它返回對象的原因。您可以添加id在框架(如你與frmContent完成)或使用frames集合,如:

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

使用該name。參見:https://developer.mozilla.org/en-US/docs/DOM/window.frames

希望它有幫助。

相關問題