24.07.2017 Views

Hacking Gmail

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

112 Part II — Getting Inside <strong>Gmail</strong><br />

Listing 6-4 (continued)<br />

// -----------------------------------------------------------<br />

---------<br />

//<br />

// ==UserScript==<br />

// @name Mailto Compose In GMail<br />

// @namespace<br />

http://blog.monstuff.com/archives/000238.html<br />

// @description Rewrites “mailto:” links to GMail compose<br />

links<br />

// @include *<br />

// @exclude http://gmail.google.com<br />

// ==/UserScript==<br />

(function() {<br />

var processMailtoLinks = function() {<br />

var xpath = “//a[starts-with(@href,’mailto:’)]”;<br />

var res = document.evaluate(xpath, document, null,<br />

XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);<br />

var linkIndex, mailtoLink;<br />

for (linkIndex = 0; linkIndex < res.snapshotLength;<br />

linkIndex++) {<br />

mailtoLink = res.snapshotItem(linkIndex);<br />

//alert(mailtoLink.href);<br />

var m = mailtoLink.href;<br />

var matches =<br />

m.match(/^mailto:([^\?]+)(\?([^?]*))?/);<br />

var emailTo, params, emailCC, emailSubject,<br />

emailBody;<br />

emailTo = matches[1];<br />

//alert(“Found to=” + emailTo);<br />

params = matches[3];<br />

if (params) {<br />

var splitQS = params.split(‘&’);<br />

var paramIndex, param;<br />

for (paramIndex = 0; paramIndex <<br />

splitQS.length; paramIndex++) {<br />

param = splitQS[paramIndex];<br />

nameValue = param.match(/([^=]+)=(.*)/);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!