使用JavaScript将选择复制到电子邮件收件人

时间:2013-12-27 21:42:45

标签: javascript google-chrome google-chrome-extension

我想尝试一段时间的Chrome扩展程序,而且总是让我误解Chrome的一件事就是点击活跃的mailto:链接会在同一个标​​签页中打开GMail(如果它是你的处理程序),离开页面。

当您使用Gmail处理程序点击mailto:链接时,会获取链接的电子邮件地址并将其附加到撰写窗口:

https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&to=youremail@somesite.com

我想要做的是创建一个扩展程序,它为我提供了一个上下文菜单选项来撰写新的电子邮件。我已经掌握了基础知识(见下文),但我无法弄清楚如何让弹出窗口中自动包含收件人电子邮件地址。

的manifest.json:

"background": {
  "scripts": [ "background.js" ]
   },

"description": "Creates a context menu option which copies the selected address into a new Gmail compose window.",

"manifest_version": 2,
"name": "New Gmail Window",
"permissions": [ "tabs", "contextMenus" ],
"version": "0.1"
}

background.js

function getEmail(info, tab) {
    chrome.windows.create({
        url: "https://mail.google.com/mail/?ui=2&view=cm&fs=1&tf=1&shva=1&", // This is the URL I need to figure out.
        width: 640,
        height: 700,
        focused: true,
        type: "popup",
    })
}

chrome.contextMenus.create({
    title: "Send Email",
    contexts: ["selection"],
    targetUrlPatterns: ["mailto:* "],
    onclick: getEmail,
});

1 个答案:

答案 0 :(得分:0)

你有99%的路在那里。这是获取电子邮件地址的简单方法:

url: "https://mail.google.com/mail/?ui=2&view=cm&fs=1&tf=1&shva=1&to="+info.linkUrl.substr(7), 

info.linkUrl抓取整个“mailto:someone@domain.com”,而.substr(7)只是切断"mailto:"部分。

附加说明:

  • 谁想要选择(即突出显示)电子邮件链接?我建议在上下文中包含链接(contexts: ["selection", "link"])。
  • targetUrlPatterns["mailto:* ")的末尾有空格。我不确定为什么它没有弄乱我尝试过的选择。但是,当您向上下文添加“链接”以便只需右键单击即可发送电子邮件时,它会搞砸。