Zum Inhalt dieser Seite

escape_html_entities.user.js

Per Knopfdruck in Textareas unerwünschte Zeichen ersetzen (momentan spitze Klammern und [kbd]-Tags).
Code markieren Download Nur bei Bedarf aktiviert Gespiegelt
// Copyright 2006 David Wilkinson. All Rights Reserved.
 
// ==UserScript==
// @name          Escape HTML Entities in TextAreas
// @namespace     http://www.dopiaza.org/tools/greasemonkey/escapeentities/
// @description   Escape HTML Entities in TextAreas
// @include       *
// ==/UserScript==
 
function updateTextAreas()
{
    // Find textareas
    var textareas = document.evaluate(
      "//textarea",
      document,
      null,
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
      null);
 
    for (var i = 0; i < textareas.snapshotLength; i++)
    {
        addHandlerLink(textareas.snapshotItem(i));
    }    
 
}
 
function addHandlerLink(textarea)
{
    var icon = "data:image/png,�PNG


IHDR��agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<BIDAT8˥�M��q��{߹w��	�"�	��LH��|m,4Bd�,,��%;�Y�)Y	I�X����R�3fL���}���?�s,f��bj�ͳ9�9��'13���ib�������AT	Aq"���\
o�A)
!�^��O�!j�8�� FP%#���E��bhB`�!De�I�q�X/������ڑQ�e�5c��N\��^���u�8����M56�제%X?��r±�s��H�E��N� J%KpA����z��$�+����Š���e��)K�Tț�"(�Y(����kdiB�3��"�н��A�7#
q!��HZ/��+��Ei4�f$���k�w����V��k�H�v�}��:O���4}fLN��$�.�j��s���s6>Ne�*�wO������ �r��]3�o�'���8��]�9y���/��f�d$[̓'���ƅ�G:[K���֐*�HB���F5�u�R�u��^��<~������`�S�s�bQ�Z��x���p� 
`|��HR#�J�z�.�;��-�I�����bh��d�q~ճ�l>:p��űd�7w<�˿�Kv?Q�9�IEND�B`�";
    var span = document.createElement('span');
    var a = document.createElement('a');
    var img = document.createElement('img');
    img.setAttribute("src", icon);
    img.setAttribute("border", "0");
    img.setAttribute("alt", "Ersetze <, > und kbd-Tags");
    img.setAttribute("title", "Ersetze <, > und kbd-Tags");
    img.style.marginLeft = "3px";
    a.setAttribute("href", window.location.href+"#");
    a.setAttribute("title", "Ersetze <, > und kbd-Tags");
    a.appendChild(img);
    a.addEventListener("click", function(evt)
    {
        escapeEntities(textarea);
    }, false);    
    span.appendChild(a);
    if (textarea.nextSibling == null)
    {
        textarea.parentNode.appendChild(span);
    }
    else
    {
        textarea.parentNode.insertBefore(span, textarea.nextSibling);
    }
}
 
function escapeEntities(textarea)
{
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
    var val = textarea.value;
    var len = val.length;
    var pos = textarea.scrollTop;
    var selectionMade = true;
 
    if (start == end)
    {
        start = 0;
        end = len;
        selectionMade = false;
    }
 
    var s = val.slice(start, end);
 
    s = s.replace(/</g, "&lt;");
    s = s.replace(/>/g, "&gt;");
    //s = s.replace(/&/g, "&amp;");
    //s = s.replace(/"/g, "&quot;");
    s = s.replace(/\[KBD\]/gi, "[CODE]");
    s = s.replace(/\[\/KBD\]/gi, "[/CODE]");
 
 
    var pre = val.slice(0, start);
    var post = val.slice(end, len);
 
    textarea.value = pre + s + post;
    if (selectionMade)
    {
        textarea.selectionStart = start;
        textarea.selectionEnd = start + s.length;
    }   
    textarea.scrollTop = pos;
}
 
window.addEventListener("load", 
    function () 
    {
        updateTextAreas();
	}, false
);