我想尝试一段时间的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,
});
答案 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:* "
)的末尾有空格。我不确定为什么它没有弄乱我尝试过的选择。但是,当您向上下文添加“链接”以便只需右键单击即可发送电子邮件时,它会搞砸。