// ==UserScript== // @name TextArea Character Count // @namespace http://gavinsharp.com/scripts // @description Displays the total number of characters in textareas // ==/UserScript== (function() { function onInput(aEvent) { charCount(aEvent.target); } function charCount(aTextArea, aIndex) { var cctext = document.getElementById('__cc_' + aTextArea.id); if (!cctext) { cctext = document.createElement('span'); cctext.id = '__cc_' + aTextArea.id; var count = document.createTextNode('CC: ' + aTextArea.value.length); cctext.appendChild(count); aTextArea.parentNode.insertBefore(cctext, aTextArea.nextSibling); } else { cctext.textContent = 'CC: ' + aTextArea.value.length; } } var xpath = "//textarea"; var res = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var i, textarea; for (i = 0; textarea = res.snapshotItem(i); ++i) { if (!textarea.id) textarea.id = '__textarea_' + i; charCount(textarea); textarea.addEventListener('input', onInput, false); } })();