目前,我为使用DOM范围对象(获取和处理用户选择)为Mozilla和基于Webkit的浏览器编写抽象层有些麻烦.
我也试着看看像Rangy这样的框架,但这对我的任务来说似乎很复杂(我不知道在代码中究竟在哪里找到我需要的信息.如果有人能给我一个提示,我将不胜感激!).
我想要的只是这个:
到目前为止我的图层看起来像这样:
var SEL_ABSTR = {
get_selection: function(window_object) {
return window_object.getSelection();
},
get_range: function(selection) {
return (selection.getRangeAt) ? selection.getRangeAt(0) : selection.createRange();
},
get_range_info: function(range, div_ele) {
var first_node, start_offset;
var last_node, end_offset;
if (range.startContainer == div_ele) {
// selections affects the containing div
first_node = div_ele.childNodes[0];
last_node = first_node;
start_offset = 0;
end_offset = first_node.nodeValue.length;
} else if (range.startOffset == range.startContainer.nodeValue.length && range.endOffset == 0) {
// known bug in Firefox
alert('firefox bug');
first_node = range.startContainer.nextSibling.childNodes[0]; …Run Code Online (Sandbox Code Playgroud) 我想在网页上实现这样一个功能:当被调用时,它会检查页面上是否有一些文本选择(通常显示为反色文本),如果是,则插入一个元素 <img src="my.png"/>在第一个单词之前.选择.
纯JavaScript或jQuery代码都是受欢迎的,jQuery更受欢迎.谢谢.