使用JavaScript将所选内容复制到电子邮件收件人中

使用JavaScript将所选内容复制到电子邮件收件人中,javascript,google-chrome,google-chrome-extension,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 我想做的

我想尝试一下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.js


你有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,而.substr7只是切断了mailto:部分

补充说明:

谁想选择,即突出显示电子邮件链接?我建议在上下文中包含链接:[选择,链接]。 targetUrlPatterns[mailto::]的末尾有一个空格。我不知道为什么它没有把我尝试过的选择弄得一团糟。但当你添加到上下文的链接以便只需右键单击即可发送电子邮件时,它确实会把事情弄得一团糟。
另外,我不想这么说,但是有一些扩展已经做到了。例如,如果您在“设置”中选择“在新窗口中”选项,将在弹出窗口中打开合成url。我确实找到了一个,但出于几个原因,我想自己做。1,为了获得一些经验。2,我尝试了该扩展,但我无法获得新窗口选项开始工作。3,我希望能够自定义此选项以供我自己使用,我可能不会发布它。这样我就可以在不影响其他人的情况下乱来。不过,谢谢你的帮助。我稍后会玩它,看看它是如何运行的。出于好奇,选择上下文项是否会将所选文本拉到电子邮件中ent?例如,有人列出了他们的电子邮件,但不是作为链接。如果我突出显示它,它是否应该将其放入“收件人:”字段?否,上下文设置中声明的选项数组仅控制chrome何时/何时不将自定义项添加到上下文菜单所有右键单击?仅当右键单击图像时?仅当右键单击高light/selection?等。但一旦您从上下文菜单中选择了一个菜单选项,Chrome会向注册为处理程序的javascript函数发送相同的信息包-请参阅,我没有像应该的那样直接回答您的问题。如果右键单击某个链接,则该链接的href将以info.linkUrl的形式返回(假设您的姓名)返回的捆绑包信息。如果右键单击是一个选择,则所选文本将作为info.selectionText返回。如果要处理不在链接中的电子邮件,可以执行类似“If info.linkUrl=除信息外无其他内容。selectionText=某物,to=selectionText”的操作
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,
});
url: "https://mail.google.com/mail/?ui=2&view=cm&fs=1&tf=1&shva=1&to="+info.linkUrl.substr(7),