Вот 2 примера Opera UserJS, которые вы можете просмотреть, и пример того, как вы можете сделать это на обычных страницах. (Очевидно, что специфичные для UserJS функции не будут работать на обычной странице, но вы можете использовать обычные события.)
Этот метод ловит щелчки левой кнопкой мыши на ссылках mailto и открывает их, например, в Gmail. Он также может обрабатывать формы.
http://shadow2531.com/opera/userjs/BeforeMailtoURL.js
Этот перехватывает все действия mailto, имеет более общий синтаксический анализатор (который поддерживает любое имя hname, а не только to, cc, bcc, subject и body) и имеет лучший синтаксис строки формата:
http://shadow2531.com/opera/userjs/BeforeMailtoURL.zip
По сути, вы должны найти способ перехватить действия mailto link. Вы можете сделать это с помощью прослушивателей событий click для ссылок и отправлять прослушиватели в формах (если вы действительно хотите поддерживать формы). (Проще использовать прослушиватель событий щелчка во всем окне и просто отфильтровать его, чтобы найти действия mailto. Таким образом, вы ловите ссылки mailto, которые динамически добавляются в произвольное время.)
Или вы можете просто пройти по странице и обработать все ссылки mailto.
Но если вы хотите перехватить действия mailto в поле адреса, через window.open или document.location и т. Д., Вам понадобится что-то вроде register5tocolHandler в HTML5 или что-то вроде поддержки Opera в webmailprovider.ini. Вы можете использовать registerProtocolHandler в Firefox, но по умолчанию он ограничен доменом, на котором вы его установили.
Таким образом, в основном, вы либо конвертируете ссылки mailto в http (s) webmail, создаете URI заранее, либо во время вызова действия mailto. Последний работает намного лучше.
Преобразование ссылки mailto в URI создания веб-почты включает в себя несколько вещей. Во-первых, вам нужно знать, какие переменные строки запроса принимает веб-почта. Затем вам нужно проанализировать mailto URI, чтобы разделить его на части, которые вы хотите. Затем вам необходимо декодировать и перекодировать (нормализовать) эти части. Затем вам нужно объединить несколько вхождений значений h вместе. И вам нужно обрабатывать вещи без учета регистра, проверять и избегать небезопасных символов,% HH и т. Д.
Для анализа вы можете выполнить быстрое и грязное регулярное выражение, но вы получите лучшие результаты с полным анализатором mailto URI и нормализующими функциями.
Итак, если вы просто хотите обработать щелчок левой кнопкой мыши по ссылкам, вы можете сделать это кросс-браузерно. Более того, вы должны использовать любые хуки, которые дает вам конкретный браузер.