2010-06-30 3 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-function или в отдельном блоке javascript после iframe.

+0

Просто удалил скрипт с и разместил его внутри после