我正在为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;
}
在撰写邮件时,它没有给我选择的文字。 请帮帮我。
答案 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");
此代码的工作方式与预期一致。