Tôi đang sử dụng var win1 = open.window(...); var win2 = open.window(...);
để mở 2 tab/cửa sổ trong Firefox - bây giờ tôi muốn so sánh hai DOM (mô hình đối tượng tài liệu) cho tương tự. Vì vậy, tôi có hai DOM có chứa một trang rất giống nhau. Các trang có cùng HTML nhưng thực thi các tệp JavaScript khác nhau.Cách so sánh hai DOM hoặc nút DOM nói chung?
Nói chung tôi kiểm tra xem HTML và CSS là như nhau:
var html1 = win1.document.body.innerHTML;
var html2 = win2.document.body.innerHTML;
if (html1 == html2) { ... }
var css1 = win1.document.body.style.cssText
var css2 = win2.document.body.style.cssText
if (css1 == css2) { ... }
Nhưng so sánh tất cả các nút DOM dường như để cho kết quả xấu:
var bodyNodes1 = win1.document.body.getElementsByTagName('*');
var bodyNodes2 = win2.document.body.getElementsByTagName('*');
bodyNodes1[123].innerHTML
là không cần thiết tương tự bodyNodes2[123].innerHTML
Phương pháp nào có thể được sử dụng để so sánh các nút DOM? Có bất kỳ Khung/Thư viện/Tập lệnh nào tồn tại để kiểm tra các trang tương tự không?
Tôi rất biết ơn vì bất kỳ gợi ý nào. :-)
'isSameNode' không được dùng nữa. Xem https://developer.mozilla.org/en-US/docs/DOM/Node.isSameNode và cũng có thể http://stackoverflow.com/questions/3649321/is-there-a-way-to-check-if- hai-dom-elements-are-equal –
isEqualNode không hoạt động trên IE mặc dù. Tôi đang tìm cách. –