htmlpainter

  • /*
     * @title htmlpainter
     * @description my bookmarklet
     * @include http://*
     * @license MIT License
     * @require 
     */
    
    
    var __nona_paint = {
    dragging: null,
    divlistcache: null,
    dropDst: null,
    backgroundColorBackup: null,
    onMouseDown : function(e) {
            if (this.getAttribute('data-paint-color') == '')
            {
                var elms= document.getElementsByTagName("*");
                for (var i = 0; i < elms.length; i++) {
                    if (elms[i].getAttribute('data-nona_paint-original-bgcolor')) {
                        if (elms[i].getAttribute('data-nona_paint-original-bgcolor') == 'x')
                        {
                            elms[i].style.backgroundColor = '';
                        }
                        else
                        {
                            elms[i].style.backgroundColor = elms[i].getAttribute('data-nona_paint-original-bgcolor');
                        }
                    }
                    if (elms[i].getAttribute('data-nona_paint-original-display'))
                    {
                       if (elms[i].getAttribute('data-nona_paint-original-display') == 'x')
                       {
    
                           elms[i].style.display = '';
                       }
                       else
                       {
                            elms[i].style.display = elms[i].getAttribute('data-nona_paint-original-display');
                       }
                    }
                }
                var palette = document.getElementById('__nona_paint_parent');
                palette.parentNode.removeChild(palette);
                return false;
            }
            var pos = __nona_paint.getElementPosition(this);
    	offsetX = e.pageX - pos.left;
    	offsetY = e.pageY - pos.top;
    	__nona_paint.dragging = this.cloneNode(true);
            __nona_paint.dragging.id="__nona_paint_dragging";
    	document.body.appendChild(__nona_paint.dragging);
    	__nona_paint.dragging.style.position = 'absolute';
    	return false;
    },
    onMouseMove: function(e) {
       if (!__nona_paint.dragging) {
          return true;
       }
        if (!__nona_paint.divlistcache)
        {
           __nona_paint.divlistcache = document.all;
        }
        __nona_paint.dragging.style.left = (e.pageX - offsetX)+'px';
        __nona_paint.dragging.style.top = (e.pageY - offsetY)+'px';
        var size = 0;
        var currentDropDst = null;
        var objlist = __nona_paint.divlistcache;
        for (i = 0; i < objlist.length; i++) {
            if (objlist[i] == __nona_paint.dragging) continue;
            if (objlist[i].className == '__nona_paint') continue;
            var dstPos = __nona_paint.getElementPosition(objlist[i]);
            if (!(e.pageY > dstPos.top
            && e.pageY < dstPos.top + parseInt(objlist[i].clientHeight) + 8))
            {
                continue;
            }
            if (!(e.pageX > dstPos.left
            && e.pageX < dstPos.left + parseInt(objlist[i].clientWidth)))
            {
                continue;
            }
            if (size == 0 || size > objlist[i].clientHeight * objlist[i].clientWidth)
            {
                size = objlist[i].clientHeight * objlist[i].clientWidth;
                currentDropDst = objlist[i];
            }
        }
        if (__nona_paint.dropDst != currentDropDst)
        {
            if (__nona_paint.dropDst)
            {
                __nona_paint.dropDst.style.backgroundColor = __nona_paint.backgroundColorBackup;
            }
            __nona_paint.backgroundColorBackup = currentDropDst.style.backgroundColor;
            if (currentDropDst)
            {
                if (!currentDropDst.getAttribute('data-nona_paint-original-bgcolor'))
                {
                    if (!currentDropDst.style.backgroundColor) {
                       currentDropDst.setAttribute('data-nona_paint-original-bgcolor', 'x');
                    }
                    else
                    {
                        currentDropDst.setAttribute('data-nona_paint-original-bgcolor', currentDropDst.style.backgroundColor);
                    }
                }
                currentDropDst.style.backgroundColor = __nona_paint.dragging.getAttribute('data-paint-color');
            }
            __nona_paint.dropDst = currentDropDst;
        }
    },
    onMouseUp: function(e) {
        if (!__nona_paint.dragging) {
            return true;
        }
        __nona_paint.dragging.parentNode.removeChild(__nona_paint.dragging);
        if (__nona_paint.dropDst)
        {
            if (__nona_paint.dragging.getAttribute('data-paint-color') == '#444')
            {
                if (!__nona_paint.dropDst.getAttribute('data-nona_paint-original-display'))
                {
                    if (!__nona_paint.dropDst.style.display) {
    
                        __nona_paint.dropDst.setAttribute('data-nona_paint-original-display', 'x');
                    }
                    else
                    {
                        __nona_paint.dropDst.setAttribute('data-nona_paint-original-display', __nona_paint.dropDst.style.display);
                    }
                }
                __nona_paint.dropDst.style.display = 'none';
            }
            else
            {
                __nona_paint.dropDst.style.backgroundColor = __nona_paint.dragging.getAttribute('data-paint-color');
            }
        }
        __nona_paint.dropDst = null;
        __nona_paint.dragging = null;
        __nona_paint.divlistcache = null;
    },
    srcList: ['data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAkhJREFUWEfFlyEwREEYx18QBOGCIAiCIAiiIAiCIArCBUEQBEEQBDOCIFwQLgiiIAiCIAiCIAiCIAjCBUEQmBH4/Xf+7+Yd6+bm3r7zn/mNt9/ufd/bt99+u7Je9ZFlU7ANwzYNVgS+gmN4gBWbByMCLsOZnyfhFPRCM2FA1SLQLWy4GUR7Hu7gCEZtrkYE0Kyf4RKmbZZ9CNbhEbbUdlda4XgEnkBLcQ+HUHO3+mu2qW/R5nTC6So0/axZb4BeSH/bs+ZZO+XCTNlcXnY452YQ7VFogvJgweYg2kug3XIA7S/Vl3AwbmfR9cU+DcqNc5i0WXZ9qR1o2dSfcKDk2nPzTzEmz499CLPmrwrXfhjQr+y0nfndxLhhaEALlB/6cv0vAT/W571ysycxXsuxB6oP5SomDvLZ1G3qKsYpKcNuSSKcvcCXuYFZd/0SfZug2acpRjjSVsqDF9GBNOZhQbQXQblSbssVhbMTiL2AeANtMSWdio+KUtLCI8fvEAteRGeA6ChEpYVDHTCxgDE6TskkwqmSSUVE6xoLmtPwT9IJpxPw6Of84HmFn8HTZXxROFXp3XEziHZ+3H6CguvLVHMJwbFquhJLedAxQ9p10NdoHzqViAC/jlrb9GJ/FqNSwrHWW+taPM1mQJdPXUKvYS0MrkI434U8wVT/V92lvhXYcjO9cK6ZxgqPbsMdN6FKRJBu+10vNuKh1YgA+sS6dsdeIH2xiYlAunrrIlFcCj1PeMhgpICgrNcLHNs8eBFciVntv1z/ryz7BuUyidmyVnUyAAAAAElFTkSuQmCC',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAk9JREFUWEfFlyFQVUEUhl8wEAgEgsFAIBAIRIPBYCAYDQQCwWAgGAgGgjMEgoFgIBiIBoPB4IwGgsFgMBgMBIOBYDAYdMag37fz3zf3yeUN8+7e5z/zDXfP7jvn7t2zZ5fRVfVr9GYNHsFCTPMVgU/hBD7DVszzEQHvwcs8r8IL8IU2yoChRaAPsJtmEe3b8BGewXLMw4gAzvorvIX1mLVfgwdwBnu201VXOF6EL+BSfIKnsJRu+5dis28z5nrC6Q4c59lZ74Iv5N/xrHl2p7wOazH3VxzeSrOI9jIcg3lwJ+Yi2nfB3fIExl9qJuHgRpx1ri/2dTA3XsFqzNr9UvtwHtNswoHJdZDmpWJMkx+HUGbNXwvXYRkwq+J0nPnTxLgFOIJzMD/8crMvAT/2856meSUx3uU4AOtDv4qJg2Y22zFNFeNMyrJbqghn3+BPeA8303VB9D0EZ1+nGOHIrdQEb+OBdD3DimhvgrnSb8u1hbPn0PUC8gPcYiadxceiVLXw6PgndAVv4xkgE4Wot3DoAdMVsIuJU7KKcGoyWURc166gDUf5ST3hdAXO8twcPN/h3+D1Mr4tnFp699Msot0ct7/B4H6ZYS4hOLamm1jmwcQMaW+DX2N86AwiAlw4amPzxS4tRr2EY9fbdW2fZhvg5dNL6Du4XwYPIZw/hibBrP876bJvC/bSrC+cO9OuwuNteOImNIgIMm2/+2KLGTqMCOAn9trd9QL1i02XCOTV24tEeyl8XsmQ+ciAYNb7Aicxz18ENzGH/Zfr/2s0+gsJ10BGRzgH/gAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAklJREFUWEfFlyEwREEYxy8IwgVBEARBEISLgiAIgigIgiAIgnBBuGDmgiAIgiBcFARBEARBEARBEARBuCAIAjMCv//O/928Y93c3Nt3/jO/8fbbve97+/bbb1elXzUqHzOwA6M2DVcEvoIWPMCqzcMRAVfgzM/TcAp6oVoYULYIdAtbbgbRXoA7OIZxm8sRATTrZ7iEWZtlH4FNeIS62u5KKxxX4Qm0FPdwCGPuVv+YbepbsjmdcLoOR37WrLdAL6S/nVnzrJ1yYWZsLi47nHcziPY4HIHyYNHmINrLoN2yD50vNZBwMGln0fXFPgvKjXOYtll2fakGtG0aTDhQcjXd/FOMyfJjD8Ks+avCtRcGDCo77WR+LzFuFA6gDcoPfbnBl4Af6/NeudmXGK/laILqQ7GKiYNsNms29RTjlJRhtyQRzl7gy9zAnLt+ib5t0OzTFCMcaStlwfPoQJrwsCDaS6BcKbbl8sLZCcReQLyBtpiSTsVHRSlp4ZHjd4gFz6MzQHQVosLCoQ6YWMAYXadkEuFUyaQionWNBc048E/SCadT8Ojn7OB5hZ/B02V8XjhV6W24GUQ7O24/QcH1Zcq5hOBYNV2JpTzomiHtNdDX6Bw6pYgAv45a2/RifxajQsKx1lvrmj/NaqDLpy6h17ARBpchnO9ClmCq/+vuUt8q1N1ML5xrprHCo9tw102oFBGk137Xi1U9tBwRQJ9Y1+7YC6QvNjERSFdvXSTyS6HnKQ8ZjhQQlPV6gZbNwxfBlZjl/sv1/6pUvgEKbgN8C8dT7AAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAitJREFUWEfFly9QAkEUxgkGA4FgMBgIBIKBaHB2DAaD0UAwEAwGgoFgIDhDIBgIBoOBaDAYDAYDwWAwGAwGgsFAMBgM7oxBv+/eu7k7XRiG24Vv5jfevj1u/739di1MLWOr4Bgsa2TOMnYA+uAF1DU6Jxm7B671uQKuADtUi2LBZewjaGpJZOwWeAIXYEWjgSSjfgN3YF2jjC+BQzAEragcRMYWwSvgUjyDM1DSWtaXNMa6HY16lLENcK7PHHUTsEP8m4xadsqtUtWoB8kHN7Uk4rqzU5IH2xoVGbsLuFtOQTJTM8nYNf2Ye32ZE5IbN6CiUcY5U20w0siMkuTqaGm8kvzoAhm1GFc3ep5Z8tEk8yeJLmlsD4wA84Mzl2MJZHoHWppOshwdQH/I6ZjJaPY1MlmSlLJbvMjYd/CjPIANrfkvY48AR+/JjGQrxY2n4YG0qm+JaD6SKzm3XFrGXgJXB8gn4BZj0tF8aEpejYcf/gKuxtPwDCBZI8otOWBcDbrInpJeJMlEE+G6uhqN6ekvPMrYMhjqc3zwfIC/jXvM+LTEettaEiXH7Tdg45yZQJcQ8XQmFvMgO0IaksxGcugEkeuolRg7Nt6McknWm+uaPs1qgJdPXkLvwUEUDyJjT0CcYPT/htawrg5aWgogGanLeHgbzt6EgmjyfmfHivpmIMkU89rt6kAAs3FJrt68SKSXgs9lfWNOEidk1rMDfY0uQJKYgf/lWrgKhV9Hz8ajbqeLLAAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAidJREFUWEfFly9QAkEUxgkGA4FgMBgIBIKBaDAYDAajgWAgGAwEA8FAcIZAMBAMBgPRYDAYDAaCwWAwGAwEg4FgMBh8Mwb9vnvv5u50YRhuF76Z33j79rj99/bbtTC1RKrgGCxbZM4SGYA+eAF1i85JInvg2p4r4AqwQ7UoFlwij6BpJZXIFngCF2DFooGko34Dd2DdoowvgUMwBK2oHEQiRfAKuBTP4AyUrJb1JYuxbseiHiXSAOf2zFE3ATvEv8modafcGlWLepB+cNNKKq47O6V5sG1Rlcgu4G45BclMzSSRNfuYe32ZE5obN6BiUcY5U20wssiM0uTqWGm8kvzoAh21Glc3ep5Z+tEk8yeJLinSAyPA/ODM5VgCnd6BlaaTLkcH0B9yOmYymn2LTJYmpe4WLxJ5Bz/GA9iwmv8SOQIcvScz0q0UN56GB9KqvaWi+Wiu5NxyaYlcAlcHyCfgFmPS0XxoSl6Nhx/+Aq7G0/AMIFkjyi09YFwNusiekl6kyUQT4bq6Go3p2S88SqQMhvYcHzwf4G/jHjM+LbXetpVUyXH7Ddg4ZybQJUQ9nYnFPMiOkIaks5EcOkHkOmo1xo6NN6Nc0vXmuqZPsxrg5ZOX0HtwEMWDSOQExAlG/29YDevqoGWlANKRuoyHt+HsTSiIJu93dqxobwaSTjGv3a4OBDAbl/TqzYtEein4XLY35iR1QmY9O9C36AKkiRn4X66Fq1D4BSLSfRBsVMgTAAAAAElFTkSuQmCC',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAitJREFUWEfFly9QAkEUxgkGA4FgMBgIBIKBaHB2DAaD0UAwEAwGgoFgIDhDIBgIBoOBaDAYDAYDwWAwGAwGgsFAMBgM7oxBv+/eu7k7XRiG24Vv5jfevj1u/739di1MLWuq4Bgsa2TOsmYA+uAF1DU6J1mzB671uQKuADtUi2LBZc0jaGpJZM0WeAIXYEWjgSSjfgN3YF2jjC+BQzAEragcRNYUwSvgUjyDM1DSWtaXNMa6HY16lDUNcK7PHHUTsEP8m4xadsqtUtWoB8kHN7Uk4rqzU5IH2xoVWbMLuFtOQTJTM8maNf2Ye32ZE5IbN6CiUcY5U20w0siMkuTqaGm8kvzoAhm1GFc3ep5Z8tEk8yeJLmlND4wA84Mzl2MJZHoHWppOshwdQH/I6ZjJaPY1MlmSlLJbvMiad/CjPIANrfkva44AR+/JjGQrxY2n4YG0qm+JaD6SKzm3XFrWXAJXB8gn4BZj0tF8aEpejYcf/gKuxtPwDCBZI8otOWBcDbrInpJeJMlEE+G6uhqN6ekvPMqaMhjqc3zwfIC/jXvM+LTEettaEiXH7Tdg45yZQJcQ8XQmFvMgO0IaksxGcugEkeuolRg7Nt6McknWm+uaPs1qgJdPXkLvwUEUDyJrTkCcYPT/htawrg5aWgogGanLeHgbzt6EgmjyfmfHivpmIMkU89rt6kAAs3FJrt68SKSXgs9lfWNOEidk1rMDfY0uQJKYgf/lWrgKhV/+LcajiyNiVQAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAklJREFUWEfFlyEwREEYxy8IwgVBEARBEISLgiAIgigIgiAIgnBBuGDmgiAIgiBcFARBEARBEARBEARBuCAIAjMCv//O/928Y93c3Nt3/jO/8fbbve97+/bbb1elXzU+KjOwA6M2DVcEvoIWPMCqzcMRAVfgzM/TcAp6oVoYULYIdAtbbgbRXoA7OIZxm8sRATTrZ7iEWZtlH4FNeIS62u5KKxxX4Qm0FPdwCGPuVv+YbepbsjmdcLoOR37WrLdAL6S/nVnzrJ1yYWZsLi47nHcziPY4HIHyYNHmINrLoN2yD50vNZBwMGln0fXFPgvKjXOYtll2fakGtG0aTDhQcjXd/FOMyfJjD8Ks+avCtRcGDCo77WR+LzFuFA6gDcoPfbnBl4Af6/NeudmXGK/laILqQ7GKiYNsNms29RTjlJRhtyQRzl7gy9zAnLt+ib5t0OzTFCMcaStlwfPoQJrwsCDaS6BcKbbl8sLZCcReQLyBtpiSTsVHRSlp4ZHjd4gFz6MzQHQVosLCoQ6YWMAYXadkEuFUyaQionWNBc048E/SCadT8Ojn7OB5hZ/B02V8XjhV6W24GUQ7O24/QcH1Zcq5hOBYNV2JpTzomiHtNdDX6Bw6pYgAv45a2/RifxajQsKx1lvrmj/NaqDLpy6h17ARBpchnO9ClmCq/+vuUt8q1N1ML5xrprHCo9tw102oFBGk137Xi1U9tBwRQJ9Y1+7YC6QvNjERSFdvXSTyS6HnKQ8ZjhQQlPV6gZbNwxfBlZjl/sv1/6pUvgH9lgN8s5WJmgAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAk9JREFUWEfFlyFQVUEUhl8wEAgEgsFAIBAIRIPBYCAYDQQCwWAgGAgGgjMEgoFgIBiIBoPB4IwGgsFgMBgMBIOBYDAYdMag37fz3zf3yeUN8+7e5z/zDXfP7jvn7t2zZ5fRVfXrzWgNHsFCTPMVgU/hBD7DVszzEQHvwcs8r8IL8IU2yoChRaAPsJtmEe3b8BGewXLMw4gAzvorvIX1mLVfgwdwBnu201VXOF6EL+BSfIKnsJRu+5dis28z5nrC6Q4c59lZ74Iv5N/xrHl2p7wOazH3VxzeSrOI9jIcg3lwJ+Yi2nfB3fIExl9qJuHgRpx1ri/2dTA3XsFqzNr9UvtwHtNswoHJdZDmpWJMkx+HUGbNXwvXYRkwq+J0nPnTxLgFOIJzMD/8crMvAT/2856meSUx3uU4AOtDv4qJg2Y22zFNFeNMyrJbqghn3+BPeA8303VB9D0EZ1+nGOHIrdQEb+OBdD3DimhvgrnSb8u1hbPn0PUC8gPcYiadxceiVLXw6PgndAVv4xkgE4Wot3DoAdMVsIuJU7KKcGoyWURc166gDUf5ST3hdAXO8twcPN/h3+D1Mr4tnFp699Msot0ct7/B4H6ZYS4hOLamm1jmwcQMaW+DX2N86AwiAlw4amPzxS4tRr2EY9fbdW2fZhvg5dNL6Du4XwYPIZw/hibBrP876bJvC/bSrC+cO9OuwuNteOImNIgIMm2/+2KLGTqMCOAn9trd9QL1i02XCOTV24tEeyl8XsmQ+ciAYNb7Aicxz18ENzGH/Zfr/2s0+gvANUBGxecl6AAAAABJRU5ErkJggg==',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAjtJREFUWEfFlxFUQ1EYxwfBIAgGQTAIBoMwCIJgEAZBEATBIAiCQecMgiAIgmAYBEEQBEEQBEEQDIIgCIIgCNbvf8//7Wz1tnb27lv/c36n93337rvvvvvd794Ko6rT6VRgD4p2TVYMfAMteIJ1uycjBlyDCz/PwznohRZCh7zFQPdQtxmEvQwPcAolu/MRA2jWL3ANVbvln4JtaMOubDfFFYGn4Rm0FI9wDDNuVvuMfWqr2R1PBN2EEz9r1nXQC+lvd9Y8a6dcmYrd2eWASzaDsEtwAsqDFbuDsFdBu+UQul9qLBFgzsFS1xd/FZQblzBvt/z6Ug14tWs8EUDJ1bQ5UPRJ8uMAwqz5q8J1EDqMKwftZv4w0a8IR/AKyg99ufGXgB/r897YHEn013I0QfUhW8UkQDKbDbuGin5KyrBboohgb5DoDhbd9Eu07YBmH6cYEUhbKU06kGbdLQi7BsqVbFuuVwQ7g0H6AG0xJZ2Kj4pS1MKjwJ/wl3QGiL5ClFkE1AEzqvpOySgiqJJJRUTrOkxH/kk8EbQMbT8nB887/FS8jO8VQVV6GzaDsJPj9gskfZl8LiEEVk1XYikP+maIvQH6Gt1DJxcxwK+j1j692MBilEkE1nprXXtPswXQ5VOX0FvYCp3zEMH3IZHq/6ab1LYOuzbji+CaaVrh0W247yaUixhk2H7Xi027az5iAH1iXbvTFL/YpImBdPXWRaJ3KfRcdpfJSAOCsl5q2T15MbgSM99/uf5fhcI3vhWE3leYUi0AAAAASUVORK5CYII=',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAiNJREFUWEftli1PA0EQhisqEIiKigpEBQJRgUAgEBWICgQCWVlRgUAgEAiSCkQFAoFAIBD9AYgKBKICUYFAIBAIRAUCgUAgyvNe5i6Bu95tt18h4U2eNDezs7u92dm53HA4XCiJxnnyr78hcpWHNmyaab5i4X34BOkKSuaavVisAO9wCFvwAB9wBEs2bHZikXN4grw9Kx0NGMAz7AUDZyEmr8AX1MwUCZvejM6F/LdQMdf0ZBN37TFR+FfhBrSRCyiaazIx0a5NumamVDGuBkqVzosObZAyLxG8BMpv20xO0qKgxbUJbSaWOicRqBP+BgUzjSXiiqB06A2emdlNBJRA/6BhJi8RH5WvmdxEgC4a1bp/DhHxP8rXSQzeAKlqJi8RP7J8U0VAD/r26C3myCzfRBH0CtI9eDUe4nbAuXwjEVAHNRzd9x2QrsG58TDWq3zDQP37lplk00b6oMZzDJmNhzF+5UvAAai5LJspEraw8bzAyMaDLyzfppncRZB2PrDHmPCppk9BKbqDdXNFwuZfvpoQpNSywZ/YePidvHwJvgTlL/P0MmYbHiG46UDl2zG3n5hAB1GvUPmOveLfYowajxaXlJqyufzFJNpEF4ImAqmnGf8JqHoyNzyWmDBsqUpJE2IHC1sZ9M/rZpqumFgtVedCb0OXSwuqoHteHyu6I3o2fHZikRVQCWoT2oykX1XD/D7PJRbUfaBXP53vvsUrl/sG4QN13tG+7QMAAAAASUVORK5CYII=',
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAAjtJREFUWEftliFTHEEQRk8gEAgEAoFAIBARSAQCEYHkJ0QiEBEIBIIqJAIRgUAgIhEIJCIiIhKJQCAiEAhEBAJxeW+3u7Lhdi+3eytCFa/qE9fT3TM71zPTg3feDMPhcB5towN0HjpFe2gTzYZrv5B4DV2gFzSOJ3SCFiN0Oki0gL6itjwjd2kmUrWH4HX0E1X5hj4jd2Q+/BaR23+IblGV76j9bhC0gX6ZIXDitRgeC37WyL1BgYuafBE4L6NHIwO/rNVW4m+xXhkc/ECT5cDxuggp2Q9za4idQdVFHMRQMzj5XyYXYe4MOeZQ/h2ekKJuGsEhv94q7uUokceaSJp3gcGl0qfgLMy9QL67Mu3wLkyjMPip9CnYCnNnyDGLLGh1hhKPd9oXwr0IOEbJXJg7Qw6L0NuziQe0Gu5FgPe6PIRpasjVtIi/JxcMuYD7MPUC+V4vYnRywfilGC7pfofXYD7kIuonFwa845P1MPcGOV3EcvwchcEPzhwchbkXyLeLvNJ3w1QPDvmauVW9NBfk8eVMTsNcDw7Vu+AwzFNBHl9SsZlZCXM9OPg/5a1lwMcY6gTxbntyHubx4OiDlK2XPUGnRRC3X2Qo8S/9c+v9C5wtmsTFHKGJagI/O6RLlPgR7U8VQS6i2oT6FW7pSGeEzXvfnbND9iVNbGw2wq09BqOsiSq+7TfIAvPkVCdNfNqXIlV3SGJhejpeN5xNOPFmhPcLiX1KLS5bdb9eOaHP7Q4af8ze+T8ZDH4Di5gTrTAuNtcAAAAASUVORK5CYII='],
    colorList: ['#FDD','#FDF','#EDF','#DEF','#DFF','#CFC','#EFC','#FED','#FFF','#444',''],
    
    getElementPosition: function (elem){
      var position=elem.getBoundingClientRect();
      return {
        left:Math.round(window.document.body.scrollLeft + document.documentElement.scrollLeft + position.left),
        top:Math.round(window.document.body.scrollTop + document.documentElement.scrollTop + position.top)
      }
    }
    };
    
    setTimeout(function () {
       objlist = document.getElementsByTagName('IMG');
       document.onmousemove = __nona_paint.onMouseMove;
       document.onmouseup = __nona_paint.onMouseUp;
       var palette = document.createElement("div");
       palette.style.backgroundColor = 'gray';
       palette.style.position = 'fixed';
       palette.style.opacity = '0.8';
       palette.style.zIndex = 999;
       palette.style.height= '40px';
       palette.style.padding = '4px';
       palette.style.width = '372px';
       palette.style.backgroundColor = 'gray';
       palette.className = '__nona_paint';
       palette.id = '__nona_paint_parent';
       for (var i = 0; i < 11; i++)
       {
           var image = document.createElement("img");
           image.src=__nona_paint.srcList[i];
           image.setAttribute('data-paint-color', __nona_paint.colorList[i]);
           image.className = '__nona_paint';
           image.onmousedown = __nona_paint.onMouseDown;
           palette.appendChild(image);
       }
       document.body.insertBefore(palette, document.body.childNodes[0]);
    }, 0);
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2014/06/11 22:57:18 - 2014-06-11
  2. 2014/06/11 22:50:43 - 2014-06-11
  3. 2014/06/11 22:48:52 - 2014-06-11
  4. 2014/06/11 22:10:34 - 2014-06-11
  5. 2014/06/11 22:08:27 - 2014-06-11
  6. 2014/06/11 21:55:20 - 2014-06-11
  7. 2014/06/11 21:29:56 - 2014-06-11
  8. 2014/06/11 21:22:07 - 2014-06-11
  9. 2014/06/11 21:06:23 - 2014-06-11
  10. 2014/06/11 21:01:17 - 2014-06-11
  11. 2014/06/11 21:00:28 - 2014-06-11