0

假设我正在制作一个像维基百科这样的网站,用户可以在其中将 [需要引用] 放在他们认为需要引用的文本片段上。我的基本解决方案是将每个句子都做成一个链接,点击后会在其后面加上一个[需要引用]。

但我不喜欢这种解决方案,因为它适用于句子级别。如果用户想要 [引文需要] 多个句子,或者可能是句子的一部分,它就行不通。所以我在想,如果我可以让用户选择任意范围,就像他们在普通文本编辑器中那样,那会很酷。

我有一个额外的限制:用户不能编辑文本。我什至不能让他们认为他们可以编辑文本,所以我宁愿避免,如果可以的话。这很奇怪,我知道。

我想这是可能的,因为谷歌文档做到了,但我不确定。这甚至可能吗?是否有可能在文本区域之外?我在这里有什么选择?

谢谢!

4

1 回答 1

1

您可以设置如下格式(如果您允许编辑):

这是我的段落。[这包含近 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

于 2013-10-04T19:32:48.297 回答