javascript - 自己的 RTE - 获取和设置选择样式

标签 javascript jquery range selection rte

我必须使用 javascript 或 JQuery 构建自己的 RTE。 但是我真的找不到一些好的、有评论的、有效的例子或教程,只是一段代码。但我不想要一个解决方案,我想要了解我在做什么!

我知道如何将选定的文本设置为粗体(获得选择,创建一个范围,然后在其周围添加一个 b-tag 或 span-tag,包括 font-weight:bold。)

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

示例:text text text [//] text text text([//]应该是图片) 现在用户选择包含图像的文本,然后选择的 html 代码就像'text text text text text text'。现在我无法简单地使用标签围绕选定的范围。

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

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

希望能帮到我! 此致 莱尼


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

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)

最佳答案

这里有一个指针:execCommand 允许您查询插入符号位置文本的粗体或斜体。

关于javascript - 自己的 RTE - 获取和设置选择样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135699/

相关文章:

javascript - react-redux 中 "@@INIT" Action 的目的是什么?

javascript - 如何检索使用 setCustomValidity 设置的错误消息?

jquery - 让 fancybox 和 hover remove 图标在同一张图片上工作

vba - 如何通过VBA引用单元格中提到的另一个工作表的单元格

ruby - 用ruby生成一系列特殊字符

javascript - 使用文件系统作为离线播放的视频源

javascript - JS,从html表单中获取日期时间对象

javascript - 带有抛物线动画的飞行气球

jquery - 当页面滚动并有一些位置时做一些事情

javascript - 我应该如何修复 for 循环代码以求和范围?