Base64 デコード

    @@ -1,9 +1,9 @@ /* * @title Base64 デコード - * @description 選択部分を Base64 のエンコード済み文字列とみなしてデコードします。文字コード変換はしてないので時々化けます。 + * @description 選択部分を Base64 のエンコード済み文字列とみなしてデコードします。時々化けます。 * @include http://* * @require http://coderepos.org/share/export/38677/lang/javascript/Base64/trunk/base64.js - * @private + * @require https://gist.github.com/84db66f331610768a50f.txt */ (function () { @@ -14,25 +14,28 @@ r = d.selection.createRange(); s = r.text; - p = r.parentElement(); + p = r.parentElement() } else { r = window.getSelection(); s = String(r); p = r.anchorNode; - if (p.nodeName == "#text") p = p.parentNode; + if (p.nodeType == 3) p = p.parentNode } -s = s.replace(/^[^a-zA-Z0-9=\+\/\s\r\n]+/, "").split(/[^a-zA-Z0-9=\+\/\s\r\n]/)[0].replace(/[\s\r\n]/g, ""); +s = s.replace(/^[^a-zA-Z0-9=\+\/]+/, "").split(/[^a-zA-Z0-9=\+\/\s\r\n]/)[0].replace(/[\s\r\n]/g, ""); if (p && s) { + s = escape(Base64.fromBase64(s)).replace(/[%0]+$/, ""); + s = ECL["Unescape"+ECL.GetEscapeCodeType(s)](s); + c = d.createElement("span"); - c.innerHTML = Base64.decode(s).replace(/\r\n|[\r\n]/g, "<br />"); + c.innerHTML = s.replace(/\r\n|[\r\n]/g, "<br />"); c.style.cssText = "display:block;margin:1em;"; - p.appendChild(c); + p.appendChild(c) }
  • /*
     * @title Base64 デコード
     * @description 選択部分を Base64 のエンコード済み文字列とみなしてデコードします。時々化けます。
     * @include http://*
     * @require http://coderepos.org/share/export/38677/lang/javascript/Base64/trunk/base64.js
     * @require https://gist.github.com/84db66f331610768a50f.txt
     */
    
    (function () {
    
    var s, r, p, c, d = document;
    
    if (d.selection) {
    
    	r = d.selection.createRange();
    	s = r.text;
    	p = r.parentElement()
    
    } else {
    
    	r = window.getSelection();
    	s = String(r);
    	p = r.anchorNode;
    	if (p.nodeType == 3) p = p.parentNode
    
    }
    
    s = s.replace(/^[^a-zA-Z0-9=\+\/]+/, "").split(/[^a-zA-Z0-9=\+\/\s\r\n]/)[0].replace(/[\s\r\n]/g, "");
    
    if (p && s) {
    
    	s = escape(Base64.fromBase64(s)).replace(/[%0]+$/, "");
    	s = ECL["Unescape"+ECL.GetEscapeCodeType(s)](s);
    
    	c = d.createElement("span");
    	c.innerHTML = s.replace(/\r\n|[\r\n]/g, "<br />");
    	c.style.cssText = "display:block;margin:1em;";
    	p.appendChild(c)
    
    }
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/04/14 16:27:47 - 2017-04-14
  2. 2017/04/09 23:57:03 - 2017-04-09
  3. 2011/09/09 15:26:56 - 2011-09-09
  4. 2010/11/22 18:53:57 - 2010-11-22
  5. 2010/11/16 15:01:32 - 2010-11-16
  6. 2010/11/16 14:57:00 - 2010-11-16