szukam rozwiązania przekroju przeglądarki (Chrome, FF, Opera> 10, IE> = 8) na następujący problem:Sprawdź, czy określony element ma wewnątrz wybór
Jest jakiś kod 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>
i użytkownik wybiera tekstem myszy od "een" (w węźle #green) do "blu" (w węźle #blue). Jak mogę sprawdzić, czy #blue znajduje się wewnątrz selekcji (nie ma znaczenia, czy jest zaznaczone w całości czy częściowo), a #red i #black nie są zaznaczone. Proste API będzie wyglądać następująco:
Selection.isElementSelected(document.getElementById('black'));
Próbowałem użyć DOMSelection i waha ale problemem jest to, że muszę sprawdzić elementy w zagnieżdżonej struktury. W Chrome mogę używać Range.intersectsNode(), ale jest to jedyna przeglądarka obsługująca tę metodę.
Wszelkie sugestie?
Może to pomaga na doskonały wynik w IE <9: containsRange: function (range) { return this.userRange.inRange (range) || range.inRange (this.userRange) || this.userRange.compareEndPoints ("EndToStart", zakres)> -1 && this.userRange.compareEndPoints ("StartToEnd", zakres) <1; } –