Javascript 自有RTE-获取和设置选择的样式

Javascript 自有RTE-获取和设置选择的样式,javascript,jquery,range,selection,rte,Javascript,Jquery,Range,Selection,Rte,我必须用javascript或JQuery构建自己的RTE。 但我真的找不到一些好的、有注释的、有效的示例或教程,只是一段代码。但我不想只是一个解决方案,我想知道我在做什么 我知道如何将所选文本加粗(获取所选内容,创建一个范围,然后在其周围添加一个b标记或span标记,包括字体权重:粗体) 但是我怎样才能得到所有款式的选择呢 示例:文本[//]文本([//]应该是图像) 现在用户选择包含图像的文本,然后选择的html代码类似于“文本”。现在,我不能简单地用一个标签围绕选定的范围 其他示例:aaa

我必须用javascript或JQuery构建自己的RTE。 但我真的找不到一些好的、有注释的、有效的示例或教程,只是一段代码。但我不想只是一个解决方案,我想知道我在做什么

我知道如何将所选文本加粗(获取所选内容,创建一个范围,然后在其周围添加一个b标记或span标记,包括字体权重:粗体)

但是我怎样才能得到所有款式的选择呢

示例:文本[//]文本([//]应该是图像) 现在用户选择包含图像的文本,然后选择的html代码类似于“文本”。现在,我不能简单地用一个标签围绕选定的范围

其他示例:aaa bbbcccddd 如果我选择“cc d”,我会得到这样的“cc”:cc,但当我选择“ccc”时,我只得到“ccc”。但是我必须知道选择的所有样式才能突出显示(例如,粗体)按钮

总而言之,我必须知道如何处理(获取)/设置选择的样式

我希望你能帮助我! 顺致敬意, 莱尼


这里是我实际拥有的一些代码(但这段代码并不能解决我的问题)

函数getSelectedNodes_txt(){ var sel=window.getSelection(); 请尝试{var frag=sel.getRangeAt(0).cloneContents()}catch(e){return(false);} var tempspan=document.createElement(“span”); 临时儿童(frag); console.log(tempspan); window.selnodes=tempspan.childNodes; 变量输出=“”
对于(var i=0,u=selnodes.length;i这里有一个指针:
execCommand
允许您查询插入符号位置文本的粗体或斜体。

任何代码?没有代码,没有答案!您想要什么代码?我不知道如何编码。这就是我需要帮助的原因。或者您想要我尝试用于选择的代码吗?我将它添加到下面.
document.execCommand()
也作用于当前选择,而不仅仅是插入符号。你能给我一些例子吗?我想得到任何样式(还有红色背景或黄色边框)。希望这是可能的。
function getSelectedNodes_txt(){
var sel = window.getSelection();
try{var frag=sel.getRangeAt(0).cloneContents()}catch(e){return(false);}
var tempspan = document.createElement("span");
tempspan.appendChild(frag);
console.log(tempspan);
window.selnodes = tempspan.childNodes;
var output = ''
for(var i=0, u=selnodes.length;i<u;i++){
    if (typeof selnodes[i].tagName !== 'undefined'){
      output += "A "+selnodes[i].tagName+" was found";
      output += " - Containing: "+selnodes[i].textContent+"\n";
    }else{
        output += "Some text was found: '"+selnodes[i].textContent+"'";
        output += " - Parent: '"+selnodes[i].parentNode.tagName+"'\n";
     }
    //do something cool with each element here...
}
return(output)