假设我正在创建一个类似维基百科的网站,用户可以在需要引用的文本片段上添加[引证需要]。我的基本解决方案是将每个句子变成一个链接,点击后,它会在其后面加上[引证]。
但我不喜欢这个解决方案,因为它在句子级别工作。如果用户想要[引用需要]多个句子,或者可能是句子的一部分,那么它将不起作用。所以我想,如果我可以让用户选择一个任意范围,就像在普通的文本编辑器中一样,这将是很酷的。
我有一个额外的约束:用户无法编辑文本。我甚至不能让他们认为他们可以编辑文本,所以我宁愿避免,如果可以的话。我知道这很奇怪。
我认为这是可能的,因为谷歌文档做到了,但我不确定。这甚至可能吗?是否可以在textarea之外?我有什么选择?
谢谢!
答案 0 :(得分:1)
您可以设置类似的格式(如果您允许编辑):
这是我的段落。[这里包含近100个字符] [需要引证]。
所以方括号将代表这个范围需要引用。
或者您可以获取用户选择的文本并对其进行相应格式化,如:
<强> See here for working 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);
}