如何在Chrome中注册Yahoo Mail的mailto协议处理程序?
如何为Yahoo Mail网页客户端注册mailto:协议处理程序
你可以通过以下两种方法在compose.mail.yahoo.com的上下文环境中执行注册代码,绕过重定向限制完成mailto协议处理程序的注册:
方法一:利用浏览器开发者工具拦截重定向
- 打开浏览器开发者工具(快捷键F12),切换到「网络」标签页
- 勾选「禁用缓存」选项,在过滤器输入框中填入
compose.mail.yahoo.com - 在地址栏输入
https://compose.mail.yahoo.com/,待请求出现后,右键点击该请求,选择「阻止请求URL」 - 再次在地址栏输入
https://compose.mail.yahoo.com/,此时页面会加载失败但域名仍停留在compose.mail.yahoo.com - 在开发者工具的「控制台」标签页中执行以下代码:
navigator.registerProtocolHandler('mailto', 'https://compose.mail.yahoo.com/?%s', 'Yahoo Mail');
- 浏览器会弹出确认对话框,确认后即可完成mailto协议处理程序的注册
方法二:使用用户脚本(Tampermonkey/Greasemonkey)
通过用户脚本可以在compose.mail.yahoo.com页面加载的最早期执行代码,避免被重定向打断:
- 安装Tampermonkey或Greasemonkey等用户脚本管理器
- 创建新脚本,粘贴以下代码:
// ==UserScript== // @name Yahoo Mail Mailto Handler // @namespace http://tampermonkey.net/ // @version 0.1 // @description 注册Yahoo Mail为mailto协议处理程序 // @match https://compose.mail.yahoo.com/* // @run-at document-start // @grant none // ==/UserScript== (function() { 'use strict'; // 执行协议注册 navigator.registerProtocolHandler('mailto', 'https://compose.mail.yahoo.com/?%s', 'Yahoo Mail'); })();
- 保存脚本后,访问
https://compose.mail.yahoo.com/,脚本会在页面重定向之前自动执行注册代码,按浏览器提示完成确认即可
原理说明
navigator.registerProtocolHandler的安全限制要求代码必须在目标URL的同源环境下执行,因此必须在compose.mail.yahoo.com的页面上下文里运行注册代码。上述两种方法都是通过拦截重定向或提前执行脚本,确保代码在重定向到其他域名前完成执行。
内容的提问来源于stack exchange,提问作者aetonsi
相关产品推荐
相关产品推荐

