// ==UserScript== // @name Vox Rich Edit // @description Adds a simple rich edit interface (Bold, Italic, Blockquote, Link) to any comment textarea on Vox. // @namespace http://www.rhyley.org/gm/ // @include http://*.vox.com/* // ==/UserScript== unsafeWindow.ta = document.getElementById('comment-text'); if (unsafeWindow.ta) { unsafeWindow.tagIt = function (tagOpen,tagClose) { // most of this bit is from http://placenamehere.com/photographica/js_textareas.html var ta = unsafeWindow.ta; var st = ta.scrollTop; if (ta.selectionStart | ta.selectionStart == 0) { // Mozzzzzzila relies on builds post bug #88049 // work around Mozilla Bug #190382 if (ta.selectionEnd > ta.value.length) { ta.selectionEnd = ta.value.length; } // decide where to add it and then add it var firstPos = ta.selectionStart; var secondPos = ta.selectionEnd+tagOpen.length; // cause we're inserting one at a time ta.value=ta.value.slice(0,firstPos)+tagOpen+ta.value.slice(firstPos); ta.value=ta.value.slice(0,secondPos)+tagClose+ta.value.slice(secondPos); // reset selection & focus... after the first tag and before the second ta.selectionStart = firstPos+tagOpen.length; ta.selectionEnd = secondPos; //ta.focus(); ta.scrollTop=st; } } unsafeWindow.linkIt = function () { var myLink = prompt("Enter URL:","http://"); if (myLink != null) { unsafeWindow.tagIt('',''); } } var TiG = document.evaluate("//p[@class='comment-form-props']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0); TiG.innerHTML += " | ','');\">italic " + "','');\">bold " + " ','');\">quote " + "link"; }