2011-07-05 21 views
12

Chính xác "contentDocument" đại diện cho iframe (hoặc thậm chí phần tử "frame" cũ) là gì? Nó có tương đương với phần tử "html" hay phần tử "body" không? Sử dụng là gì? Và thuộc tính này có được hỗ trợ trên tất cả các trình duyệt không?contentTài liệu cho iframe

Trả lời

19

w3.org

contentDocument loại tài liệu, chỉ đọc, được giới thiệu trong DOM Level 2 Tài liệu khung này chứa, nếu có bất kỳ và nó có sẵn, hoặc null khác.

MDN

Từ phần tử DOM iframe, các kịch bản có thể được tiếp cận với các đối tượng cửa sổ của trang HTML bao gồm thông qua thuộc tính contentWindow. Thuộc tính contentDocument đề cập đến phần tử tài liệu bên trong khung nội tuyến (điều này tương đương với contentWindow.document), nhưng không được hỗ trợ bởi các phiên bản Internet Explorer trước IE8.

msdn

tài liệu trang này hoặc khung chứa
Khách sạn này là mới trong Windows Internet Explorer 8

Vì vậy, để có được những innerHTML của phần tử cơ thể bạn có thể sử dụng

iframe.contentDocument.getElementsByTagName("body")[0]

hoặc

iframe.contentDocument.body

trong các trình duyệt ngày nay.

+1

Còn hỗ trợ của contentWindow thì sao? Khi nó đã bắt đầu và nó là tiêu chuẩn? – Olga

+0

Có. DOM lvl2. Liên kết đầu tiên – mplungjan

+0

Cảm ơn nhưng trang w3.org không có kết quả phù hợp cho contentWindow, chỉ dành cho contentDocument. Tôi đã tự hỏi làm thế nào tiêu chuẩn là cotentWindow – Olga

2

contentDocument đại diện cho tài liệu của khung nội tuyến (đối tượng DOM). Số này không tương đương với html vì tài liệu có thuộc tính riêng của chúng, tuy nhiên nếu bạn nhập:

myFrame.contentDocument.body 

Bạn sẽ nhận được phần thân.

Nó được hỗ trợ trong tất cả các trình duyệt, với một thay đổi nhỏ: dành cho Internet Explorer sử dụng

myFrame.contentWindow.document 

Thưởng thức, Nili

11

contentDocument là cách tiêu chuẩn hóa để có được giữ của iframe hoặc Document đối tượng khung của . Đối tượng tương tự như JavaScript đang chạy trong khung nội tuyến sẽ truy cập qua document.

Như đã lưu ý trong các câu trả lời khác, IE không hỗ trợ nó cho đến phiên bản 8 nhưng đã hỗ trợ truy cập đối tượng Window của iframe qua contentWindow.Do đó, một cách qua trình duyệt của việc tổ chức của yếu tố <body> của một iframe là:

var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 
var iframeBody = iframeDoc.body; 

Lưu ý rằng nếu iframe không được cung cấp từ cùng một tên miền như tài liệu chính, hạn chế bảo mật trình duyệt sẽ ngăn chặn truy cập đến đối tượng tài liệu của nó theo cách này hay cách khác.