Skip to content

Instantly share code, notes, and snippets.

@spudtrooper
Created November 23, 2012 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spudtrooper/4136438 to your computer and use it in GitHub Desktop.
Save spudtrooper/4136438 to your computer and use it in GitHub Desktop.
Bookmarklet to selects all of the last opened gmail message.
/*
* Selects all of the last opened gmail message.
*/
(function() {
function setSelection(el) {
var range = document.createRange();
var fst = el.firstChild, lst = el.lastChild;
if (fst && lst) {
range.setStartBefore(fst);
range.setEndAfter(lst);
} else {
range.setStartBefore(el);
range.setEndAfter(el);
}
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
function getNthNode(par,n) {
if (!par) return null;
if (par.childNodes.length <= n) return null;
return par.childNodes[n];
}
function main() {
var msgDiv = document.querySelector('div[style="display:"]');
if (!msgDiv) return;
var bodyDiv = getNthNode(msgDiv, 2); // gross
if (!bodyDiv) return;
var el = getNthNode(bodyDiv, 5); // gross!!
if (!el) return;
setSelection(el);
}
main();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment