1

我正在尝试为 windows 编写一个 chrome 扩展,它将任何选定的文本从页面复制到剪贴板。我正在使用 jquery 来执行 java 脚本部分。

如何在该页面中获取任何选定/突出显示的文本?换句话说,是否有一个事件侦听器,当突出显示文本的任何部分时会触发该事件侦听器。

4

2 回答 2

3

到目前为止,我有过的最好的经验是使用zeroclipboarddocument.selection.createRange().text并使用或 手动将选定的文本附加到它window.getSelection()

用法:http ://code.google.com/p/zeroclipboard/wiki/Instructions

这应该给你一个好的开始:

jsBin 演示

var highlighted;
$(document).on('mouseup', function(e){     
   if (window.getSelection) {
      highlighted  = window.getSelection();
   } else if (document.selection) {
      highlighted = document.selection.createRange();
   }        
   var selectedText = highlighted.toString() !=='' && highlighted;
  
   alert(selectedText); // to be added to clipboard
});
于 2012-09-12T07:16:55.517 回答
3
function getSelected() {
  if (window.getSelection) return window.getSelection();
  if (document.getSelection) return document.getSelection();
  if (document.selection) return document.selection.createRange().text;
}

document.onmouseup = function () {
  getSelected(); // => "Something you've sele..."
};

演示

于 2012-09-12T07:27:51.360 回答