2010-06-30 122 views
2

對於JavaScript專家來說,這必須非常簡單。在下面的代碼中,我試圖打開一個iframe到瀏覽器窗口的全部高度。JavaScript getElementById(...)爲空或不是對象IE

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
     <script language="javascript" type="text/javascript"> 
    function resizeIframe() { 
    var height = document.documentElement.clientHeight; 
    height -= document.getElementById('documentFrame2').offsetTop; 
    height -= 20; 
    document.getElementById('documentFrame2').style.height = height +"px"; 
}; 
document.getElementById('documentFrame2').onload = resizeIframe; 
window.onresize = resizeIframe; 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <iframe src="standard-tube-map.pdf" id="documentFrame2" width="100%" onload="resizeIframe();" ></iframe> 
    </div> 
    </form> 
</body> 
</html> 

它工作在Mozilla,但在IE(只在IE8測試)它給人的錯誤:的document.getElementById(...)爲空或不是對象「。任何人都可以建議我應該改變什麼才能使它跨瀏覽器工作?

非常感謝, 阿里

回答

0

你做

document.getElementById('documentFrame2').onload = resizeIframe; 

文檔之前準備好這樣的iframe可以找到。在onload或document-ready函數中調用它,或者在iframe之後調用一個單獨的javascript塊。

+0

剛從中刪除了腳本,並將其放在之後,