テキスト部分とリンクを含む contentEditable div を作成しました。リンクをダブルクリックすると、リンク テキストが選択されます。
<div contentEditable="true">
This is a text and <a href="http://www.google.com">This_is_a_link</a>
</div>
その後、document.getSelection().getRangeAt(0).startContainer を呼び出すと、div が返されます。
// => <div contenteditable="true">
リンクの代わりに。div のどの部分が選択されているかを見つける方法が見つかりません。
この jsfiddle を参照してください (「This_is_a_link」をダブルクリックすると、startContainer のコンソール ログが表示されます): http://jsfiddle.net/UExsS/1/
(フィドルからの必須の JS コード)
$(function(){
$('a').dblclick(function(e) {
setTimeout(function() {
console.log(window.getSelection().getRangeAt(0));
}, 500);
});
});
Chrome には正しい動作があることに注意してください。Chrome で上記の jsfiddle を実行すると、startContainer の textElement が得られます。
誰かがこの問題に遭遇しましたか? 回避策を見つけましたか?