如何让用户在文本中选择范围
How can I get the user to select a range in text?
假设我正在制作一个像维基百科这样的网站,用户可以将[需要引用]放在他们认为需要引用的文本上。我的基本解决方案是将每个句子都变成一个链接,当点击时,它会在它后面加上一个[需要引用]。
但我不喜欢这种解决方案,因为它适用于句子级别。如果用户想要[引用需要]多个句子,或者可能是句子的一部分,它将不起作用。所以我在想,如果我能让用户选择一个任意范围,就像他们在普通文本编辑器中所做的那样,那就太酷了。
我有一个额外的约束:用户无法编辑文本。我甚至不能让他们认为他们可以编辑文本,所以我宁愿避免,如果可以的话。这很奇怪,我知道。
我想这是可能的,因为谷歌文档做到了,但我不确定。这可能吗?是否可以在文本区域之外?我在这里有什么选择?
谢谢!
您可以设置如下格式(如果您允许编辑):
这是我的段落。[包含近 100 个字符][需要引用]。
所以方括号将代表这个范围需要引用。
或者,您可以获取用户选择的文本并相应地设置其格式,如下所示:
请参阅此处了解工作 jsFiddle
function getSelectionText() {
var html = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var container = document.createElement("div");
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
} else if (typeof document.selection != "undefined") {
if (document.selection.type == "Text") {
html = document.selection.createRange().htmlText;
}
}
alert(html);
}
取自 Tim Down 的代码:从用户选择的文本返回 HTML
相关文章:
- html选择-范围为0-10
- Jquery日期选择器-防止选择范围内的不可用日期
- 在绝对位置设置从 A 到 B 的选择范围
- 如何在选择范围时显示输入范围值
- 选择范围标记中的文本
- 如何让用户在文本中选择范围
- 键入电子邮件不'不支持选择范围
- 为什么选择范围和弹出窗口不能在javascript中一起工作
- 检查指定的元素是否在选择范围内
- 如何更改用户'在UIWebView中的选择范围
- jquery删除粘贴html后的文本选择范围
- 更改jquery的选择范围
- 在javascript IE8中设置选择范围
- 在javascript中获取选择范围的样式
- JavaScript将鼠标位置转换为选择范围
- 是否有一种方法来获得宽度的选择/范围
- 设置复选框选择范围的限制
- jQuery Datepicker beforeShowDay-已选择范围
- 在数字输入中有特定的选择范围
- jquery .js -在jquery .js 0.20.1中无法获得readOnly:true编辑器的选择范围