gpt4 book ai didi

Jquery 在 Redactor 文本编辑器中获取突出显示的文本

转载 作者:行者123 更新时间:2023-11-30 23:49:56 24 4
gpt4 key购买 nike

我正在使用一个很棒的 jquery 文本编辑器,名为 Redactor 。我正在尝试添加一个新按钮,单击该按钮即可获取文本编辑器中突出显示的文本。

该脚本允许通过添加以下设置来添加新按钮:

buttonsCustom: {
button1: {
title: 'Button',
callback: testButton //executes callback on button click
}
}

然后在回调中我想获取突出显示的文本

function testButton(obj, event, key)
{
alert(highlighted_text);
}

我仔细查看了文档,但没有办法获取突出显示的文本。我尝试了其他功能,例如...

function getSelText() {
var txt = '';
if (window.getSelection) {
txt = window.getSelection();
} else if (document.getSelection) {
txt = document.getSelection();
} else if (document.selection) {
txt = document.selection.createRange().text;
} else return;
return txt;
}

...但是文本编辑器脚本已经有一种方法可以做到这一点,最好使用它。

在脚本中,我发现文本选择函数位于第 1719 行,但不知道如何将其用于自定义按钮。

有使用过Redactor的 friend 请帮忙!

最佳答案

选择你的毒药(两种方法都适用于 Firefox 和 IE):

方法1:未记录的内部函数

有一个名为 getSelection 的内部函数,但它不是公共(public) API 的一部分。

您可以使用 $('#redactor_content').data('redactor').getSelection() 调用它。

方法 2:复制功能

现在,如果您不想依赖于访问 Redactor 的内部,您可以将实现复制到您自己的函数中,通过调用 getDoc() 来替换对内部变量的访问:

function getRedactorSelection(elem)
{
var doc = elem.getDoc().get(0);
if (doc.getSelection)
{
return doc.getSelection();
}
else if (doc.selection)
{
return doc.selection.createRange();
}
};

用法:getRedactorSelection($('#redactor_content'))

好处是,您可以免受 Redactor 内部函数的命名和调用方式变化的影响,但坏处是您的代码不再独立于浏览器。

关于Jquery 在 Redactor 文本编辑器中获取突出显示的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com