javascript - HTML JS 文本编辑器

标签 javascript html dom

我正在尝试创建一个非常简单的 html 文本编辑器。 我利用上下文菜单功能来获得不同的格式选项,一旦用户选择屏幕上突出显示的文本,就会在其上附加一个跨度标签。

这就是我所拥有的。

function StyleChange(property) {
    var span = document.createElement("span");
    span.style.color = property;

    if (window.getSelection) {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0).cloneRange();
            range.surroundContents(span);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    }
}

这对于更改突出显示文本的颜色效果很好。 我想要做的是能够使用此函数通过在调用函数时传递额外参数来更改文本的任何样式格式。 所以当它被调用时它会说类似的话。 StyleChange('颜色',红色) 或 StyleChange('背景','黄色')。

类似的东西

function StyleChange(style,property) {
    var span = document.createElement("span");
    **span.style. + style = property;**

    if (window.getSelection) {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0).cloneRange();
            range.surroundContents(span);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    }
}

我收到一条错误消息,有什么想法吗?

最佳答案

方括号用于传递属性,例如:

function StyleChange(property, value){
  var span = document.createElement('span');
  span.style[property] = value;
  if(window.getSelection){
    var sel = window.getSelection();
    if(sel.rangeCount){
      var range = sel.getRangeAt(0).cloneRange();
      range.surroundContents(span);
      sel.removeAllRanges();
      sel.addRange(range);
    }
  }
}

关于javascript - HTML JS 文本编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25902346/

相关文章:

javascript - 导航切换脚本与页面特定脚本不兼容

javascript - 在 UL 标签之外输入文本,可以吗?

javascript - Bootstrap 模态框无法打开

javascript - 如何基于输入框运行 MySQL 查询。

javascript - 当父级在另一个路径中时将 iframe 更改为相对位置

php - 为 MySQL 解析一个大的 XML 文件

jquery 包含 |仅针对第一个祖先

javascript - 如何在 JavaScript 中使用 zindex

javascript - 在两个子组件之间共享一个方法(Angular)

javascript - 在 WebRTC 中发送远程 ice candidates 的 SyntaxError