我创建了一个带有文本部分和链接的 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。
有没有人遇到过这个问题?你找到解决方法了吗?