2010-09-27 38 views
5

Tôi có dòng đơn giản nàygetElementById vấn đề trong Google Chrome

alert(window.parent.frames[0].document.getElementById('textToSearch').value); 

tôi có 2 khung, đầu tiên với một trường văn bản với id 'textToSearch' Tôi muốn nhận được giá trị của trường text trong khung thứ hai Dòng trên là trên tệp html từ khung thứ hai Tôi nhận được lỗi này chỉ trong Google Chrome, trong IE hoặc FF hoạt động tốt.

Uncaught TypeError: Cannot call method 'getElementById' of undefined

Bất kỳ ý tưởng nào?

Cảm ơn trước

+0

Cả hai khung trên cùng một tên miền? – Matchu

+0

có, cả hai khung được đưa vào trang chỉ mục – tinti

+0

'cảnh báo (window.parent.frames.length)' và 'alert (window.parent.frames [0] .toString())' cung cấp cho bạn là gì? – JBRWilkinson

Trả lời

4

Cuối cùng tôi tìm vấn đề là gì. Tôi thử mã từ phía trên trên Google Chrome trên tệp hệ thống cục bộ. Do cài đặt bảo mật của Google Chrome, việc sử dụng usecase này là không thể. Nếu tôi di chuyển tất cả các tệp trên máy chủ web, thao tác này sẽ hoạt động như một sự quyến rũ Cảm ơn tất cả vì sự hỗ trợ của bạn, chủ đề này có thể đóng ngay bây giờ

+1

Bạn có trách nhiệm đóng chủ đề bằng cách đánh dấu câu trả lời (câu trả lời của chính mình hoặc của người khác). –

+0

ok, tôi sẽ chấp nhận câu trả lời này vào ngày mai ... như đề xuất trên chú giải công cụ – tinti

3

Sử dụng contentWindow.document thay vì document:

var frame = window.parent.frames[0].contentWindow; 
alert(frame.document.getElementById('textToSearch').value); 

Bạn cũng có thể chỉ cần sử dụng contentDocument đối với hầu hết các trình duyệt, nhưng không phải trình duyệt Internet Explorer 7 trở lên.

+0

Cảm ơn bạn đã trả lời ... nhưng không hoạt động. tôi nhận được Không thể đọc tài liệu 'tài liệu' của không xác định. Nếu tôi muốn xem những gì trong biến 'khung' với cảnh báo, tôi có 'không xác định' – tinti

+0

@tinti: đó là lạ. Không có thuộc tính * tài liệu * cho phần tử khung nội tuyến trong Chrome, nhưng có * thuộc tính contentWindow * và * contentDocument *. Nếu nó tìm thấy khung, mã tôi đã cho bạn ** nên ** làm việc. –

+0

Tôi không biết liệu có phải vấn đề hay không, nhưng tôi sử dụng khung thay vì iframe. tinti

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