在gmail撰写邮件区域中获取选中/突出显示的文本html

我正在为Gmail设计Chrome扩展程序。 在此,我希望获得选定/突出显示的文本。 我试过以下代码:

if (!window.x) { x = {}; } x.Selector = {}; x.Selector.getSelected = function() { var t = ''; if($('.compose-container').getSelection){ t = $('.compose-container').getSelection(); alert(t); } else if (window.getSelection) { t = window.getSelection(); } else if (document.getSelection) { t = document.getSelection(); } else if (document.selection) { t = document.selection.createRange().text; } return t; } 

它不是在撰写邮件时给我选择的文字。 请帮帮我。

您需要使用copy命令来实现此目的。

 var copyText = document.execCommand('copy'); 

基本上它会复制浏览器中的任何文本选择。

您可以查看此链接 ,了解它是如何被充分利用的

根据gRenzFries的回答,我的代码与他提供的链接相同。 但是在代码中添加了少量内容以将其粘贴到文本框中。

代码复制文本:

 var emailLink = document.querySelector('.gmail_default'); var range = document.createRange(); range.selectNode(emailLink); window.getSelection().addRange(range); try { // Now that we've selected the anchor text, execute the copy command var successful = document.execCommand('copy', true); } catch(err) { } 

将其粘贴到文本框中的代码:

 $('#text-to-display').val(""); //reset textbox value $('#text-to-display').focus(); //set focus to textbox document.execCommand("Paste"); 

此代码与预期一样有效。