相关疑难解决方法(0)

Range对象:Webkit和基于Mozilla的浏览器之间的差异

目前,我为使用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)

javascript webkit mozilla range

6
推荐指数
1
解决办法
2443
查看次数

在所选文本之前插入元素

我想在网页上实现这样一个功能:当被调用时,它会检查页面上是否有一些文本选择(通常显示为反色文本),如果是,则插入一个元素 <img src="my.png"/>在第一个单词之前.选择.

纯JavaScript或jQuery代码都是受欢迎的,jQuery更受欢迎.谢谢.

javascript jquery

2
推荐指数
1
解决办法
140
查看次数

标签 统计

javascript ×2

jquery ×1

mozilla ×1

range ×1

webkit ×1