使用Javascript查找选择中的换行符?

时间:2015-08-31 16:39:56

标签: javascript html

请原谅下面的业余爱好者,它来自设计师试图编码:D

我在这里尝试实现的是返回用光标选择/突出显示的行数。通过" line"我指的是用户可见的内容,而不是一行HTML代码(目前正在进行)。同样通过"换行",我不是指HTML标签,而是印刷中断,或者"软回复"。

所以我目前只停留在var master = { object1: { left: "this is left", right: "this is right" } } var objName = "object1"; alert(master[objName].left); 上,只会在"新线"当然。有没有办法用换行符拆分选定的字符串?

希望这一切都有意义!



selection.split("\n")

function measure() {
  var str = window.getSelection();
  var selection = str.toString();
  var arr = selection.split("\n");
  if (arr != ""){
    document.getElementById('length').innerHTML = arr.length;
  }
  else {
    document.getElementById('length').innerHTML = "0";
  }
};

document.addEventListener('mouseup', measure, false);

body {
  width: 80%;
}




1 个答案:

答案 0 :(得分:0)

您可以尝试找出构成选择的矩形数量。如果您检查它们的起始位置,您应该能够确定选择了多少行。代码如下:

function measure() {
  var str = window.getSelection();

  var range = str.getRangeAt(0);
  var rects = range.getClientRects();
  document.getElementById('length').innerHTML = rects.length;
};

document.addEventListener('mouseup', measure, false);

在源中,选择可以包含多个范围,并且矩形可以在同一行上,因此您需要添加一些代码来检查它。

希望这有帮助!