tôi đang tìm kiếm giải pháp trình duyệt chéo (Chrome, FF, Opera> 10, IE> = 8) cho các vấn đề sau đây:Kiểm tra xem yếu tố quy định là bên trong lựa chọn
Có một số mã html:
<div>
<div id="one">
<p id="red">red</p>
<p id="green">green</p>
</div>
<div id="two">
<p id="blue">blue</p>
<p id="black">black</p>
</div>
</div>
và người dùng chọn văn bản chuột từ 'een' (trong nút #green) đến 'blu' (trong nút #blue). Làm thế nào tôi có thể kiểm tra nếu #blue là lựa chọn bên trong (nó không quan trọng nếu toàn bộ hoặc một phần được chọn) và #red và #black không được chọn. Simple API sẽ trông như thế này:
Selection.isElementSelected(document.getElementById('black'));
Tôi đã cố gắng sử dụng DOMSelection và Ranges nhưng vấn đề là tôi cần phải kiểm tra các yếu tố trong cấu trúc lồng nhau. Trong Chrome, tôi có thể sử dụng Range.intersectsNode(), nhưng đây là trình duyệt duy nhất có hỗ trợ phương pháp này.
Mọi đề xuất?
Có lẽ điều này giúp bạn cho một kết quả hoàn hảo trong IE <9: containsRange: function (range) { trả về this.userRange.inRange (range) || range.inRange (this.userRange) || this.userRange.compareEndPoints ("EndToStart", dải ô)> -1 && this.userRange.compareEndPoints ("StartToEnd", range) <1; } –