Google chrome extension 如何检测当前登录的用户';Gmail收件箱网页中的电子邮件地址(https://mail.google.com/mail/u/0/#inbox)

Google chrome extension 如何检测当前登录的用户';Gmail收件箱网页中的电子邮件地址(https://mail.google.com/mail/u/0/#inbox),google-chrome-extension,Google Chrome Extension,我正在开发一个chrome扩展,在用户的Gmail收件箱中运行一个内容脚本 如果用户登录到多个gmail帐户(例如:a@gmail.com及b@gmail.com),我想确保我的脚本只为他登录到我的扩展的帐户运行。所以基本上,如果他用a@gmail.com,脚本应仅在上运行a@gmail.comgmail收件箱网页,而不是b@gmail.comgmail收件箱网页 我现在是这样处理的:当我的内容脚本在gmail.com网页上运行时,它会通过从gmail用户界面获取当前登录帐户的电子邮件地址(当你

我正在开发一个chrome扩展,在用户的Gmail收件箱中运行一个内容脚本

如果用户登录到多个gmail帐户(例如:a@gmail.com及b@gmail.com),我想确保我的脚本只为他登录到我的扩展的帐户运行。所以基本上,如果他用a@gmail.com,脚本应仅在上运行a@gmail.comgmail收件箱网页,而不是b@gmail.comgmail收件箱网页

我现在是这样处理的:当我的内容脚本在gmail.com网页上运行时,它会通过从gmail用户界面获取当前登录帐户的电子邮件地址(当你点击右上角的用户档案图片图标时,可以看到电子邮件地址)

然而,每次Gmail更新它的UI时,这个代码都会中断


有没有更好的方法从gmail收件箱网页获取当前登录用户的电子邮件地址,理想情况下,这种方法可以抵抗gmail用户界面的变化?

我以前也遇到过同样的问题,我发现最可靠的方法是从标签标题获取电子邮件地址。到目前为止,它一直抵抗gmail用户界面的变化

const title=document.querySelector('title').innerHTML;
const email=title.match(/([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@”]+*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])}.[1,3}.[a-zA-Z]+];

正则表达式来自

,这是UI自动化中的一个常见问题,您几乎没有办法解决它。如果GUI发生变化,并且您的代码依赖于一个不再存在的特定区域,那么它几乎就死了。您可以做的是依赖于用户的帮助,例如,在您的情况下,显示一个小提示,询问类似的问题“是否确实要在当前网页上执行扩展Z?”。