请原谅下面的业余爱好者,它来自设计师试图编码: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%;
}

答案 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);
在源中,选择可以包含多个范围,并且矩形可以在同一行上,因此您需要添加一些代码来检查它。
希望这有帮助!