你可以做这样的事情,与你所追求的不太一样,我想?但可能会给你一个开始进一步的想法。
<div>In cryptography, a keyed-hash message authentication code (HMAC) is a specific construction for calculating a message authentication code (MAC) involving a cryptographic hash function in combination with a secret cryptographic key. As with any MAC, it may be used to simultaneously verify both the data integrity and the authentication of a message. Any cryptographic hash function, such as MD5 or SHA-1, may be used in the calculation of an HMAC; the resulting MAC algorithm is termed HMAC-MD5 or HMAC-SHA1 accordingly. The cryptographic strength of the HMAC depends upon the cryptographic strength of the underlying hash function, the size of its hash output, and on the size and quality of the key.</div>
<button id="get">Get Selected</button>
function getText() {
var selectedText
if (typeof window.getSelection === "function") {
selectedText = window.getSelection();
} else if (typeof document.getSelection === "function") {
selectedText = document.getSelection();
} else if (document.selection && typeof document.selection.createRange() === "function") {
selectedText = document.selection.createRange().text;
} else {
selectedText = "";
alert("No method to get selected text");
}
if (!selectedText || selectedText === "") {
if (document.activeElement.selectionStart) {
selectedText = document.activeElement.value.substring(
document.activeElement.selectionStart.document.activeElement.selectionEnd);
}
}
alert(selectedText);
}
document.getElementById("get").addEventListener("click", getText, false);
在jsfiddle上
您还可以看到我在 SO 上扩展了这个想法的进一步答案。
作者提出了另一个问题,但这是另一个 jsfiddle
window.getSelection
概括
返回一个选择对象,表示用户选择的文本范围。
规格
DOM 级别 0。不属于任何标准。
预计将在新的 DOM Range 规范中指定
还有一个名为Rangy的库应该可以处理这种瘦跨浏览器,从未尝试过,但您可能想看看。
一个跨浏览器的 JavaScript 范围和选择库。它提供了一个简单的基于标准的 API,用于在所有主要浏览器中执行常见的 DOM 范围和选择任务,抽象出 Internet Explorer (包括版本 8)和兼容 DOM 的浏览器之间该功能的完全不同的实现。