Jquery Aloha编辑器-获取突出显示的文本并替换为html代码
我正在尝试在Aloha中设置一个自定义操作,添加一个按钮,将所选文本封装到一个span类中 例如: 您选择了“示例词” 这将改变它的价值Jquery Aloha编辑器-获取突出显示的文本并替换为html代码,jquery,highlight,aloha-editor,Jquery,Highlight,Aloha Editor,我正在尝试在Aloha中设置一个自定义操作,添加一个按钮,将所选文本封装到一个span类中 例如: 您选择了“示例词” 这将改变它的价值 <span>example word</span> 完整代码: var redHighlight = ""; Aloha.require(['ui/ui', 'ui/button'], function(Ui, Button) { var redButton = Ui.adopt("redButton"
<span>example word</span>
完整代码:
var redHighlight = "";
Aloha.require(['ui/ui', 'ui/button'], function(Ui, Button) {
var redButton = Ui.adopt("redButton", Button, {
tooltip: 'Label',//gives inner text
click: function(){
var range;
if ( Aloha.getSelection().rangeCount > 0 ) {
range = Aloha.getSelection().getRangeAt( 0 );
}
console.log(range); //returns nothing
}
});
});
Aloha.settings.toolbar = {
tabs: [
{
label: 'Urgent',
components: [ 'redButton' ],
}
],
exclude: [ 'strong', 'emphasis', 'strikethrough' ]
};
编辑1:
我在Aloha论坛上问了这个问题,从mod上我得知在输出中重新插入html可能会导致一些DOM问题,我首先从文档中错过了范围函数与我正在开发的Google Chrome不兼容的问题
但仍对解决方案感兴趣:)
提前感谢,您可以在额外的软件包中查看类似wai lang插件的插件。Aloha编辑器中有一个实用程序对象,可以帮助您将所选文本包装到DOM对象中
var range = Aloha.Selection.getRangeObject();
if (range.isCollapsed()) {
GENTICS.Utils.Dom.extendToWord(range);
}
if (!range.isCollapsed()) {
GENTICS.Utils.Dom.addMarkup(range,
jQuery('<span class="myspecialspan"></span>'), false);
}
range.select();
var range=Aloha.Selection.getRangeObject();
if(range.isCollapsed()){
GENTICS.Utils.Dom.extendedtoword(范围);
}
如果(!range.isCollapsed()){
GENTICS.Utils.Dom.addMarkup(范围,
jQuery(“”),false);
}
range.select();
除了相应地更改选择外,它还将处理DOM拆分。例如,当您没有只选择文本,但您的选择还包含无法包装到跨距中的块元素时,跨距将被拆分:
<h1>{Heading 1</h1>
<h1>Heading 2</h1>
<h1>Heading 3}</h1>
{标题1
标题2
标题3}
其中{标记选择的开始,}标记选择的结束,将导致
<h1>{<span class="myspecialspan">Heading 1</span></h1>
<h1><span class="myspecialspan">Heading 2</span></h1>
<h1><span class="myspecialspan">Heading 3</span>}</h1>
{标题1
标题2
标题3}
很抱歉验证太晚,我们将尝试此方法并向您发送确认信息。谢谢
<h1>{<span class="myspecialspan">Heading 1</span></h1>
<h1><span class="myspecialspan">Heading 2</span></h1>
<h1><span class="myspecialspan">Heading 3</span>}</h1>