2011-09-08 87 views
6

當我嘗試點擊我的日曆控件時,出現javascript錯誤。Javascript錯誤:'window.top.document.getElementById(...)'爲空或不是對象

的HTML代碼是:

Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.SelectionChanged 
    Dim strjscript As String = "<script language=""javascript"" type=""text/javascript"">" 
    strjscript &= "window.top.document.getElementById('" & HttpContext.Current.Request.QueryString("DateTextID") & "').value = '" & Calendar1.SelectedDate & "';" 
    strjscript &= "window.top.document.getElementById('" & HttpContext.Current.Request.QueryString("DateTextID") & "1').style.display = 'none';" 
    strjscript = strjscript & "</script" & ">" 
    Literal1.Text = strjscript 
End Sub 

我的錯誤:

 <td align="left" style="width:50%;"><asp:Label runat="server" CssClass="TextFontBold" ID="lblStartDate" Text="Start Date:"></asp:Label> 
      <input type="text" class="TextBox" id="FromDate" runat="server"/><a href="javascript:ShowCalendar('FromDate1')"><img src="images/Calendar.png" border="0" /></a> 
      <iframe src="Calendar.aspx?DateTextID=FromDate" style="display:none; top: 0px; left: 0px; width:245px; height:164px" frameborder="0" scrolling="no" name="FromDate1" id="FromDate1"></iframe>&nbsp;&nbsp;&nbsp;&nbsp; 
      &nbsp;&nbsp;&nbsp;&nbsp;<asp:Label runat="server" CssClass="TextFontBold" ID="lblPromoStartTime" Text="Start Time:"></asp:Label> 
     </td> 

當我點擊日曆控件的日期,這個代碼在代碼隱藏運行得到的是'window.top.document.getElementById(...)'爲空或不是對象

I確實有一個名爲FromDate的對象。
還有什麼可能導致此錯誤?

+0

是從iframe中運行的代碼,或託管的網頁? –

+0

代碼隱藏在iframe中。該HTML是在託管頁面 – Csharp

+0

你能解決這個問題? – Troy

回答

6

的建議嘗試window.parent.document.getElementById()代替window.top.document.getElementById()

+1

爲什麼window.parent在window.top不工作時工作? –

2

你試過parent.document.getElementById(...)?只是一個想法...

編輯由pimvdb

+0

類似錯誤..... document.parent爲空或不是對象 – Csharp

+0

'parent'不是'document'的屬性,而是'window'的屬性。另外,它返回一個窗口,所以它應該讀取'parent.document.getElementById'。 – pimvdb

+0

是的,謝謝,我明顯地輸入了錯誤的方式。固定在第二。 –

相關問題