我正在开发一个书签应用程序,需要存储用户选择的关键词、单词或内容。 我正在使用createRange()和addRange() JavaScript方法创建范围,然后找出用户选择的元素/内容。 我编写的代码如下。
<head>
<script type="text/javascript">
var storedSelections = [];
function StoreSelection () {
if (window.getSelection) {
var currSelection = window.getSelection ();
for (var i = 0; i < currSelection.rangeCount; i++) {
storedSelections.push (currSelection.getRangeAt (i));
}
currSelection.removeAllRanges ();
} else {
alert ("Your browser does not support this example!");
}
}
function ClearStoredSelections () {
storedSelections.splice (0, storedSelections.length);
}
function ShowStoredSelections () {
if (window.getSelection) {
var currSelection = window.getSelection ();
currSelection.removeAllRanges ();
for (var i = 0; i < storedSelections.length; i++) {
currSelection.addRange (storedSelections[i]);
}
} else {
alert ("Your browser does not support this example!");
}
}
</script>
</head>
<body>
Select some content on this page and use the buttons below.<br /> <br />
<button onclick="StoreSelection ();">Store the selection</button>
<button onclick="ClearStoredSelections ();">Clear stored selections
</button>
<button onclick="ShowStoredSelections ();">Show stored selections</button>
</body>
在Firefox上,这段代码运行得很完美。我可以一个接一个地选择多个内容,并能够再次显示所选的内容,但是在Chrome和Chromium上,当我将多个元素存储在范围数组中并单击“显示已存储的选择”按钮时,会出现“不连续选择不受支持”的错误提示。
如果有其他替代方法来完成这个书签任务,请建议并感谢您的帮助。