标签: rangy

在contenteditable div中粘贴时将富文本转换为纯文本

我试图用chrome的'纯文本'的行为创建一个contenteditable div.因此,用户只能输入纯文本,而在复制富文本时,它会被粘贴为纯文本.在我的脚本中,@ -mentions转换为按钮并使用Rangy.js添加

在普通的contenteditable div中,可以粘贴富文本,我需要将其转换为普通文本.唯一的问题是检测粘贴的内容,然后将其转换为文本并将其插入正确的位置,并在恢复胡萝卜位置后.在更多行上选择更多文本时更难.

我是否认为很难,是否有更简单的解决方案?或者任何人都可以推荐最轻量级的编辑器?

谢谢!

javascript range rangy

5
推荐指数
0
解决办法
3378
查看次数

Rangy + ContentEditable +设置插入和替换选择

我有以下代码片段来将插入符号设置为给定的索引 index

var el = $("#subjectMessage"), index = 9 ;
var range = rangy.createRange();
range.setStart(el[0].childNodes[0], index);
range.collapse(true);
var sel = rangy.getSelection();
sel.setSingleRange(range);
Run Code Online (Sandbox Code Playgroud)

当我将输入元素添加到contentEditable时会出现问题div,我不能再将插入符号设置在所需的位置.

我想将这些输入视为div中的一个位置(就好像它们只是一个字符一样).

除此之外,我还需要类似的代码这CONTENTEDITABLE内更换选择div用我自己的一些文字,我真的不熟悉(所有),与四肢修长,以了解如何使这项工作?

非常欢迎所有帮助!

这是你可以玩的小提琴:

http://jsfiddle.net/ee93P/

html jquery contenteditable rangy

4
推荐指数
1
解决办法
3752
查看次数

兰吉:如何获得使用荧光笔模块创建的span元素?

我正在使用Rangy中可用的荧光笔模块,它在为所选文本创建突出显示时效果很好。

就html的更改而言,所选文本将由span标记代替,例如以下所示:

the selected text is <span class="highlight">replaced by a span tag</span> like the
Run Code Online (Sandbox Code Playgroud)

我想做的是在创建span元素后获得对它的引用,以便我可以对其进行其他处理。如何才能做到这一点?

请注意,在其他地方可能存在其他带有或没有高亮标记的跨度,因此无法使用这些跨度来找到它。

我必须为所选文本创建突出显示的代码的重要部分是:

var highlighter = null;
var cssApplier = null;

rangy.init();
cssApplier = rangy.createCssClassApplier("highlight", { normalize: true });
highlighter = rangy.createHighlighter(document, "TextRange");
highlighter.addClassApplier(cssApplier);

var selection = rangy.getSelection();
highlighter.highlightSelection("highlight", selection);
Run Code Online (Sandbox Code Playgroud)

javascript rangy

4
推荐指数
1
解决办法
1689
查看次数

使用Rangy将键盘插入符移动到元素的末尾

我有几个元素在一个满足的范围内div.如何将键盘插入符号放在由id标识的特定元素的末尾,然后将其移动到div使用Rangy的末尾

在此先感谢,任何帮助表示赞赏.

html javascript html5 rangy

4
推荐指数
1
解决办法
2438
查看次数

Rangy&ContentEditable - 设置Caret

我正在尝试使用最新版本的"rangy"jQuery插件(1.2 beta)来将插入符号设置为具有特定偏移量的可信DIV.

但是,它在Firefox中响应一个奇怪的错误:安全错误"代码:"1000

这是违规代码:

var el = $("#editablediv"), index = 11;
var range = rangy.createRange();
range.setStart(el, index);
var sel = rangy.getSelection();
sel.setSingleRange(range);
Run Code Online (Sandbox Code Playgroud)

调用setStart函数时代码失败.

有人能举一个正确使用rangy的例子吗?

jquery contenteditable rangy

3
推荐指数
1
解决办法
3804
查看次数

如何使用Rangy选择文本节点?

我有一个常插入DOM的常规文本节点.

我想选择它(就像用户用鼠标选择它一样),使用Javascript或Rangy.

我有以下(我觉得很难看)代码:

        // insert as regular text node
        var txt = document.createTextNode($mySpan.text());
        $myHeading.get(0).insertBefore(txt, $mySpan.get(0));

        // select again
        var sel = rangy.getSelection();
        sel.removeAllRanges()

        var range = rangy.createRange();
        range.selectNode(txt);
Run Code Online (Sandbox Code Playgroud)

我很乐意为此提供帮助.我不知道如何实现它,并且goggling不起作用.我能想到的唯一方法是在文本之间插入2个元素,然后选择它,然后删除元素,但我想知道是否有更优雅的方式.

谢谢,任何帮助表示赞赏.

javascript range selection rangy

3
推荐指数
1
解决办法
2025
查看次数

不支持不连续的选择

我正在尝试bootstrap-wysihtml5-rails,我正在使用twitter bootstrap 2

但是当我在图像中得到这个结果时,错误:

Discontiguous selection is not supported.
Run Code Online (Sandbox Code Playgroud)

我试着window['rangy'].initialized = false;这样:

<script type="text/javascript">
    $(document).ready(function(){


        window['rangy'].initialized = false;

        $('.wysihtml5').each(function(i, elem) {
            $(elem).wysihtml5();
        });
    })
</script>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到同样的错误,我可以忍受它,但它似乎打破了编辑器的按钮,如图像,任何人都可以帮助?

在此输入图像描述

rangy ruby-on-rails-4 twitter-bootstrap-2 bootstrap-wysihtml5

3
推荐指数
1
解决办法
6259
查看次数

将光标设置在可编辑内容的末尾

我有一个简单的可编辑内容,其中包含带有标签的文本...当插入标签时,单词将替换为其中的跨度...

<div contenteditable=true>
      text text text <span class="tag">tag</span> 
</div>
Run Code Online (Sandbox Code Playgroud)

这就是结果(当用户按空格键时,标签被包含标签文本的跨度替换;这在键入时发生)

然后,我需要将光标放在可编辑内容的末尾(跨度之外),以便让用户继续输入...

我已经能够将光标移动到最后,但只能移动到跨度内...

我用兰吉。

javascript contenteditable rangy

3
推荐指数
2
解决办法
1632
查看次数

兰吉| 如何使用span标签上的click事件删除突出显示的文本?

就像这样rangy library说,我们需要选择text使其突出显示并删除突出显示。

为了突出显示它包括span tag

要删除突出显示的文本,我想单击span tag而不是选择该文本。

这是library用于删除突出显示的方法:

 unhighlightSelection: function(selection) {
                selection = selection || api.getSelection();
                console.log(selection.getAllRanges())
                var intersectingHighlights = this.getIntersectingHighlights( selection.getAllRanges() );
                this.removeHighlights(intersectingHighlights);
                selection.removeAllRanges();
                return intersectingHighlights;
            }
Run Code Online (Sandbox Code Playgroud)

在这里,selection变量用api.getSelection()代替local selection variable

我认为足以让所有人了解我的问题。

如果您愿意,我可以提供更多描述。

我可以做一些事情,以占领了selection variable一样api.getSelection()不使用它?

或我为实现这一目标需要做什么?

任何建议都将令我感激。

谢谢

javascript rangy

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

&lt;pre&gt; 内部内容可编辑,将 &lt;br&gt; 替换为 \r\n

我有一个内容可编辑的 div。在此我插入一个<pre>some code</pre>标签。此标签旨在允许用户输入格式化代码,类似于 SO。

我遇到的问题是 FF 正在插入<br>标签来代替 \r\n,这在正常的 Html 中是正确的,但在 pre 我实际上想要 \r\n。

我尝试将委托附加到父 contenteditable。但这不会为嵌套的 dom 元素触发。所以

$('#contenteditablediv').delegate('pre', 'keyup', function() { ... });
Run Code Online (Sandbox Code Playgroud)

不火。我还尝试处理父 div 上的正常 keyup,并用 \r\n 替换 pre 标签中的所有 brs。但这会弄乱插入符号并且很笨重。

有没有首选的方法来做到这一点?

我可能不得不求助于剥离它们的服务器端,但我宁愿不这样做。

非常感谢

jquery contenteditable rangy

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

重叠文本范围的解决方案.

我有一个以下问题,并寻找提示如何使用rangy或本机范围对象.我有div元素,其中包含以下文本:"这是示例文本." 从服务我收到这个例子json响应.[{start:0,end:10},{start:2,end:8}]我想添加标记0到10和2到8的文本的跨度.所以必须添加第二个跨度 - 从2到8与已增加的跨度的偏差.

最好的祝福.

javascript rangy

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