display-query-string

  • /*
     * @title display-query-string
     * @description URLのクエリ文字列を見やすく表示するもの。ウインドウクリックで消去
     * @include http://*
     * @license MIT License
     * @require 
     */
    
    (function(){
    
       if(!('JCT8836' in window)){
         window.JCT8836 = false;
         var script = document.createElement('script');
         script.src = 'http://www.drk7.jp/pub/js/ecl_test/ecl_new.js';
         document.body.appendChild(script);
       }
    
       if(!window.JCT8836){
         setTimeout(arguments.callee, 100);
         return;
       }
    
       var decode_uri = function(src){
         if(!src.match(/%[0-9A-Fa-f]{2}/)) return src;
         var code = GetEscapeCodeType(src);
         var meth = 'Unescape' + code;
         return window[meth](src) + " ("+code+")";
       };
    
       var href = location.href;
       var match = href.match(/\?([^#]*)/);
      if(!match) return;
       var params = [];
    
       var dl = document.createElement('dl');
       document.body.appendChild(dl);
       match[1].split(/&/).forEach(
         function(pair_src){
           var pair = pair_src.split(/=/,2);
           var key  = decode_uri(pair[0]);
           var val  = decode_uri(pair[1]);
           var dt = document.createElement('dt');
           dl.appendChild(dt);
           var dd = document.createElement('dd');
           dl.appendChild(dd);
           dt.appendChild(document.createTextNode(key));
           dd.appendChild(document.createTextNode(val));
         }
       );
    
       dl.style.cssText = "" +
         "position:fixed;" +
         "z-index: 65536;" +
         "overflow: auto;" +
         "max-height: 300px;" +
         "background: rgba(200,200,200,0.85);" +
         "padding: 10px;" +
         "width: 40%;" +
         "";
    
       dl.style.top = (window.innerHeight - dl.clientHeight) / 2 + 'px';
       dl.style.left = (window.innerWidth - dl.clientWidth) / 2 + 'px';
    
       dl.addEventListener(
         'click', function(ev){
           ev.stopPropagation();
         }, false
       );
    
       window.addEventListener(
         'click', function(ev){
           dl.parentNode.removeChild(dl);
           window.removeEventListener('click', arguments.callee, false);
         }, false
       );
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2011/01/03 14:54:52 - 2011-01-03