Check if specified element is inside selection

I'm searching for cross browser solution (Chrome, FF, Opera > 10, IE >= 8) for the following problem:

There is some html code:

<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>

and user selects with mouse text from 'een' (in #green node) to 'blu' (in #blue node). How can I check if #blue is inside selection (it does not matter if is whole or partially selected) and #red and #black are not in selection. Простой API выглядел бы так:

Selection.isElementSelected(document.getElementById('black'));

Я пытался использовать DOMSelection и Ranges, но проблема в том, что мне нужно проверить элементы во вложенной структуре. В Chrome я могу использовать Range.intersectsNode(), но это единственный браузер с поддержкой этого метода.

Любые предложения?

5
задан Mateusz W 17 February 2012 в 07:49
поделиться