2010-11-20 26 views
7

Tôi đang xây dựng tiện ích mở rộng của Chrome vào một thời điểm nào đó sẽ xác định ngôn ngữ trang hiện tại. Để làm được điều đó, kế hoạch của tôi là trích xuất nội dung văn bản của trang (hoặc ít nhất là một phần của nó) và chuyển nó sang bản dịch api. Tuy nhiên tôi không thể tìm thấy bất kỳ cách nào về phía trước eo biển để chỉ nhận được tất cả các tài liệu của textNode.Cách nhận nội dung văn bản của toàn bộ tài liệu?

Có một kế hoạch sao lưu để phân tích đệ quy $('body').contents() cho đến khi có đủ nội dung văn bản, nhưng có vẻ hơi lộn xộn. Có lẽ có một cách tốt hơn?


Lưu ý: Chrome phần mở rộng api cho phép script của bạn để truy cập vào trang sử dụng dom như thể nó là một phần của nó.

+0

là có cách nào bạn có thể sử dụng thực thi python trong phát triển chrome mở rộng? Nếu bạn có thể sử dụng 'SGMLParser' từ module' sgmllib' để đạt được điều đó! không chắc chắn làm thế nào để làm điều này bằng cách sử dụng js –

+0

bạn làm gì với html hoàn chỉnh của trang ??? – kobe

Trả lời

8

Sử dụng jQuery text() method

$('body').text() 
+0

Rõ ràng hiển nhiên;) – artemave

+0

Xin lỗi vì đã nitpick, nhưng bạn muốn: '$ ('body'). Văn bản()' – szeryf

+0

@szeryf có quyền của bạn. Lời xin lỗi của tôi và bắt tốt! –

10

Without jQuery, cũng giống như dễ dàng: document.body.innerText;

+6

innerText chỉ dành cho IE, document.body.textContent else – kennebec

+0

Theo PPK, cả hai đều có nhiều hoặc ít trình duyệt chéo (innerText không có trong Firefox, textContent trong IE) http://www.quirksmode.org/dom/w3c_html. html – pawel

+2

Chúng khác nhau mặc dù: http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in-firefox/1359822#1359822 –

10

Javascript:

document.body.textContent 
Các vấn đề liên quan