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

时间:2015-12-30 07:42:46

标签: javascript jquery google-chrome-extension

我正在为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;
    }

在撰写邮件时,它没有给我选择的文字。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

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

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

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

您可以查看此link有关如何充分利用

的信息

答案 1 :(得分:0)

根据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");

此代码的工作方式与预期一致。