检测到所选文本无法正常工作

问题描述 投票:0回答:1

我正在尝试使用javascript检测是否选择了格式为divtextarea内的文本。 HTML是这样的:

<div id="rte-test" class="rich-text-editor">
    <ul class="toolbar">
        <li> <a href="#" class="command" id="...">...</a> </li>
    </ul>
    <div class="textarea" id="textareaContent" contentEditable="true"></div>
</div>

我尝试了此javascript代码:

var command = document.getElementsByClassName("command");

for(var i=0; i<command.length; i++) {
  command[i].addEventListener("click", function() {
    var btn = this;
    var content = window.document.getElementById("textareaContent");
    if (content.getSelection) {
      console.log(content.getSelection() + ' selected. ' + btn.id);
    } else {
      console.log('nothing is selected. ' + btn.id);
    }
  });
}

使用此代码,即使在if/else上选择了某些内容,textarea也只能使用“什么都没有选择”选项。

我也尝试过:

var command = document.getElementsByClassName("command");

for(var i=0; i<command.length; i++) {
  command[i].addEventListener("click", function() {
    var btn = this;
    if (window.getSelection) {
      console.log(window.getSelection() + ' selected. ' + btn.id);
    } else {
      console.log('nothing is selected. ' + btn.id);
    }
  });
}

使用此代码,即使未选择任何内容,if/else也只能使用“选择的”选项。

任何人都知道如何解决该问题?

javascript selection highlight
1个回答
2
投票

尝试

© www.soinside.com 2019 - 2024. All rights reserved.