2011-09-08 35 views
6

Tôi gặp phải lỗi javascript khi tôi cố bấm vào điều khiển lịch của mình.Lỗi Javascript: 'window.top.document.getElementById (...)' là null hoặc không phải là đối tượng

Mã html là:

 <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> 

Khi tôi bấm vào một ngày trong sự kiểm soát lịch, mã này được thực hiện trên mã phía sau:

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 

Các lỗi tôi nhận được là 'window.top.document.getElementById (...)' là null hoặc không phải là một đối tượng

I có một đối tượng được gọi là FromDate.
Điều gì khác có thể gây ra lỗi này?

+0

Là mã chạy từ bên trong Iframe, hoặc các trang lưu trữ? –

+0

Mã sau nằm trong khung nội tuyến. Html nằm trong trang lưu trữ – Csharp

+0

Bạn có thể giải quyết vấn đề này không? – Troy

Trả lời

6

Hãy thử window.parent.document.getElementById() thay vì window.top.document.getElementById()

+1

Tại sao window.parent làm việc khi window.top không? –

2

Bạn đã thử parent.document.getElementById(...) chưa? Chỉ cần một ý tưởng ...

Sửa theo đề nghị của pimvdb

+0

lỗi tương tự ..... document.parent là null hoặc không phải là một đối tượng – Csharp

+0

'parent' không phải là thuộc tính của' document' mà là 'window'. Thêm vào đó, nó trả về một cửa sổ, vì vậy nó sẽ đọc 'parent.document.getElementById'. – pimvdb

+0

vâng, cảm ơn, tôi rõ ràng đã gõ sai đường. Cố định ở dạng thứ hai. –

Các vấn đề liên quan