您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Check the use of new kind of cookies: sessionStorage, localStorage, globalStorage and databaseStorage.
// <![CDATA[ // ==UserScript== // @name Storage Viewer // @fullname Storage Viewer // @author GIJoe // @version 0.13b // @licence http://creativecommons.org/licenses/by-nc-sa/3.0/ // @license (CC) by-nc-sa // @namespace http://userscripts.org/scripts/show/62673 // @description Check the use of new kind of cookies: sessionStorage, localStorage, globalStorage and databaseStorage. // @include http://* // @include https://* // @unwrap // ==/UserScript== ( function() { //============================= User Config =============================================== const DIV_OPACITY = 0.90; // between 0 and 1 const DEFAULT_POS = 2; // 1=top-left / 2=top-right / 3=bottom-left / 4=bottom-right const RESET_KEYCODE = 19; // 19=VK_PAUSE const SHOW_AT_START = 1; // 0=no / 1=if storage used / 2=if storage available / 3=yes const SHOW_AT_CHANGE = 1; // 0=no / 1=yes const COLOR_TITLE = '#AAAAFF'; const COLOR_TITLE_TEXT = '#666666'; const COLOR_UNAVAILABLE = '#FF8888'; const COLOR_PROTECTED = '#FFAA44'; const COLOR_NOT_USED = '#88CCCC'; const COLOR_USED = '#44FF44'; const COLOR_INFO_TEXT = '#000000'; const COLOR_CLOSE = '#CCCCDD'; const COLOR_CLOSE_TEXT = '#000000'; const COLOR_BG_SESSION = '#444400'; const COLOR_BG_LOCAL = '#220066'; const COLOR_BG_GLOBAL = '#225522'; //========================================================================================= //========================================================================================= //========================================================================================= const FONT_COURIER_NEW = '"Courier New", Courier, monospace'; const FONT_ARIAL = 'Arial, Tahoma, Helvetica, sans-serif'; const DIV_HEIGHT = 18; const DIV_ZINDEX = 999999999; const KEY_DIV_WIDTH = 250; //=============================== Compatibility Routines ================================== var gvar=function() {}; if(typeof(unsafeWindow)=='undefined') { unsafeWindow=window; } if(typeof(GM_log)=='undefined') { GM_log=function(msg) { if((typeof(unsafeWindow.console)!='undefined') && (typeof(unsafeWindow.console.log)!='undefined')) { unsafeWindow.console.log(msg); } }; } if(window.navigator.appName.match(/^opera/i) && typeof(window.opera)!='undefined') { gvar.isOpera=true; GM_log=window.opera.postError; } else { gvar.isOpera=false; } //=============================== Useful Routines ========================================= // void show_alert(message :string[,display :int] ) => Log and display a message // display: 0=console only / 1=top of document / 2=bottom of document function show_alert(msg, display) { if(arguments.callee.counter>=0) { arguments.callee.counter++; } else { arguments.callee.counter=0; } GM_log('['+arguments.callee.counter+'] '+msg); if(display==1 || display==2) { warningelem=document.createElement('div'); warningelem.setAttribute("style","color:#FFFFFF; background:#FF8000; width:auto; text-align:center; font-size:24px; border: 3px solid #CC0088; margin:2px; background:#FF8800; color:#000000;"); warningelem.textContent=msg; if(display==1) { document.body.insertBefore(warningelem, document.body.firstChild); } else { document.body.appendChild(warningelem); } } } function isDefined(x) { return !(x == null && x !== null); } function isUndefined(x) { return x == null && x !== null; } function removeElement(el) { el.parentNode.removeChild(el); } function replaceElement(el,nel) { var elp=el.parentNode; var eln=el.nextSibling; elp.removeChild(el); elp.insertBefore(nel,eln); } function user_select(element,value) { var els = element.style; if(!els) { return; } if(isDefined(els.userSelect)) {els.userSelect=value;} // CSS3 else if (isDefined(els.MozUserSelect)) {els.MozUserSelect=value;} // Mozilla else if (isDefined(els.webkitUserSelect)) {els.webkitUserSelect=value;} // WebKit else if (isDefined(els.OUserSelect)) {els.OUserSelect=value;} // Opera } function getKeyCode(event) { var key=event.keyCode; if(gvar.isOpera) { if(key>96 && key<123) { key=key-32; } } // key.toUpperCase(); if(event.ctrlKey) { key=key+1000; } if(event.shiftKey) { key=key+2000; } if(event.altKey) { key=key+4000; } if(event.metaKey) { key=key+8000; } return key; } //============================== Storage routines ======================================== function sessionStorageType() { var res=''; try { res=typeof(unsafeWindow.sessionStorage) } catch(e) { res='Error'; } // Catch Security error return res; } function localStorageType() { var res=''; try { res=typeof(unsafeWindow.localStorage) } catch(e) { res='Error'; } // Catch Security error return res; } function globalStorageType() { var res=''; try { res=typeof(unsafeWindow.globalStorage) } catch(e) { res='Error'; } // Catch Security error return res; } function databaseStorageType() { var res=''; try { res=typeof(unsafeWindow.openDatabase) } catch(e) { res='Error'; } // Catch Security error return res; } function sessionStorageLength() { var lg=0; try { lg=unsafeWindow.sessionStorage.length; } catch(e) { lg='Unreadable'; } // Catch Security error return lg; } function localStorageLength() { var lg=0; try { lg=unsafeWindow.localStorage.length; } catch(e) { lg='Unreadable'; } // Catch Security error return lg; } function globalStorageLength() { var lg=0; try { lg=unsafeWindow.globalStorage[location.hostname].length; } catch(e) { lg='Unreadable'; } // Catch Security error return lg; } function databaseStorageLength() { var lg=0; for(var name in unsafeWindow) { //show_alert(name+" "+unsafeWindow[name],1); try { if(unsafeWindow[name]=="[object Database]") { lg+=1; } } catch(e) {} // Catch Security error } if(lg==0 && unsafeWindow.opera) { return 'Available'; } return lg; } //=============================== Main functions ========================================= function keyPressed(event) { var keyCode=getKeyCode(event); if(keyCode==RESET_KEYCODE) { resetPos(); refresh(); refresh_data(); gvar.infoBox.style.setProperty('display','block',''); } } function hideInfoBox(event) { gvar.infoBox.style.setProperty('display','none',''); } function downTitleInfoBox(event) { if(event.button!=0) { gvar.moveM=false; return; } gvar.offX=event.screenX-gvar.infoBox.offsetLeft; gvar.offY=event.screenY-gvar.infoBox.offsetTop; gvar.moveM=true; } function upTitleInfoBox(event) { gvar.moveM=false; } function moveTitleInfoBox(event) { if(gvar.moveM) { gvar.infoBox.style.left=(event.screenX-gvar.offX)+'px'; gvar.infoBox.style.top =(event.screenY-gvar.offY)+'px'; gvar.infoBox.style.removeProperty('right'); gvar.infoBox.style.removeProperty('bottom'); } } function resetPos() { gvar.infoBox.style.removeProperty('left'); gvar.infoBox.style.removeProperty('right'); gvar.infoBox.style.removeProperty('top'); gvar.infoBox.style.removeProperty('bottom'); switch(DEFAULT_POS) { case 1: gvar.infoBox.style.setProperty('left' ,'3px',''); gvar.infoBox.style.setProperty('top' ,'3px',''); break; default: case 2: gvar.infoBox.style.setProperty('right','3px',''); gvar.infoBox.style.setProperty('top' ,'3px',''); break; case 3: gvar.infoBox.style.setProperty('left' ,'3px',''); gvar.infoBox.style.setProperty('bottom','3px',''); break; case 4: gvar.infoBox.style.setProperty('right','3px',''); gvar.infoBox.style.setProperty('bottom','3px',''); break; } } function storageEvent(event) { //show_alert('Storage Event'); refresh(); refresh_data(); if(SHOW_AT_CHANGE) { gvar.infoBox.style.setProperty('display','block',''); } } function refresh() { function refreshStorage(ws,lgS,divS,divSitem,cbaf) { if((ws=='object') || (cbaf && ws=='function')) { if(lgS>=0) { divSitem.style.setProperty('text-align','right',''); divSitem.style.setProperty('padding-right','6px',''); divSitem.textContent=lgS+' item(s)'; if(lgS>0) { divS.style.setProperty('background',COLOR_USED,''); } else { divS.style.setProperty('background',COLOR_NOT_USED,''); } } else { divSitem.style.setProperty('text-align','left',''); divSitem.style.setProperty('padding-right','0',''); divSitem.textContent=lgS; if(lgS=='Available') { divS.style.setProperty('background',COLOR_NOT_USED,''); } else { divS.style.setProperty('background',COLOR_PROTECTED,''); } } } else { divSitem.style.setProperty('text-align','left',''); divSitem.style.setProperty('padding-right','0',''); if(ws=='Error') { divSitem.textContent='Protected'; divS.style.setProperty('background',COLOR_PROTECTED,''); } else if(ws=='undefined') { divSitem.textContent='Unavailable'; divS.style.setProperty('background',COLOR_UNAVAILABLE,''); } else { divSitem.textContent='Bad type'; divS.style.setProperty('background',COLOR_UNAVAILABLE,''); } } } // Show Data refreshStorage(sessionStorageType() ,sessionStorageLength() ,gvar.divSS,gvar.divSSitem,false); refreshStorage(localStorageType() ,localStorageLength() ,gvar.divLS,gvar.divLSitem,false); refreshStorage(globalStorageType() ,globalStorageLength() ,gvar.divGS,gvar.divGSitem,false); refreshStorage(databaseStorageType(),databaseStorageLength(),gvar.divDS,gvar.divDSitem,true); } //======================== function sessionStorageDisplayEvent(e) { e.preventDefault(); storageDisplay(0); } function localStorageDisplayEvent(e) { e.preventDefault(); storageDisplay(1); } function globalStorageDisplayEvent(e) { e.preventDefault(); storageDisplay(2); } function storageDisplay(storageId) { if(gvar.overlay!=null) { return; } gvar.storageId=storageId; gvar.storage=null; gvar.name='N/A'; var lg='N/A'; var bg='#000000'; var title=''; switch(storageId) { case 0: lg=sessionStorageLength(); bg=COLOR_BG_SESSION; gvar.name='sessionStorage'; title=gvar.name+' [ this page ]'; if(lg>=0) { gvar.storage=unsafeWindow.sessionStorage; } else { lg='no'; } break; case 1: var domain=location.protocol+'//'+location.hostname; if(location.port!='') { domain+=':'+location.port; } lg=localStorageLength(); bg=COLOR_BG_LOCAL; gvar.name='localStorage'; title=gvar.name+' [ '+domain+'/* ]'; if(lg>=0) { gvar.storage=unsafeWindow.localStorage; } else { lg='no'; } break; case 2: lg=globalStorageLength(); bg=COLOR_BG_GLOBAL; gvar.name='globalStorage'; title=gvar.name+' [ '+location.hostname+' ]'; if(lg>=0) { gvar.storage=unsafeWindow.globalStorage[location.hostname]; } else { lg='no'; } break; } gvar.overlay = document.createElement('div'); gvar.overlay.setAttribute('style','position:fixed; top:0; bottom:0; left:0; right:0; height:100%; width:100%; background:'+bg+'; opacity:0.5; overflow:auto; z-index:'+(DIV_ZINDEX-2)); document.body.appendChild(gvar.overlay); gvar.panel = document.createElement('div'); gvar.panel.setAttribute('style','position:fixed; top:8px; bottom:8px; left:0; right:0; margin-left:auto; margin-right:auto; width:800px; z-index:'+(DIV_ZINDEX-1)+'; background:'+bg+'; color:#FFFFFF; overflow:auto; font-family:'+FONT_ARIAL+'; font-size:15px; font-weight:normal; text-decoration:none; line-height:15px;'); var pdiv=document.createElement('div'); pdiv.setAttribute('style','position:absolute; left:0; right:0; padding:20px; padding-left:14px; padding-right:0px; text-align:left;'); gvar.panel.appendChild(pdiv); // Title... var tabElem=document.createElement('table'); tabElem.setAttribute('style','width:760px; border-collapse:collapse; border:0; margin:0; padding:0;'); var tr=document.createElement('tr'); var td1=document.createElement('td'); tr.appendChild(td1); td1.setAttribute('style','border:0; margin:0; padding:0;'); var td2=document.createElement('td'); tr.appendChild(td2); td2.setAttribute('style','width:100%; border:0; margin:0; padding:0;'); var td3=document.createElement('td'); tr.appendChild(td3); td3.setAttribute('style','border:0; margin:0; padding:0;'); tabElem.appendChild(tr); pdiv.appendChild(tabElem); var elem=document.createElement('input'); elem.setAttribute('type','button'); elem.setAttribute('style','width:80px; padding:4px; background: #C0C0C0 !important; color:#000000 !important; border-width:1px; cursor: pointer;'); elem.value='Reset'; elem.addEventListener('click', panel_clear, true); if(gvar.storage==null) { elem.style.setProperty('visibility','hidden',''); } td1.appendChild(elem); var titleElem=document.createElement('div'); titleElem.setAttribute('style','padding:4px; background:transparent !important; color:#FFFFFF !important; text-align:center; font-size:20px;'); titleElem.textContent=title; td2.appendChild(titleElem); elem=document.createElement('input'); elem.setAttribute('type','button'); elem.setAttribute('style','width:80px; padding:4px; background: #C0C0C0 !important; color:#000000 !important; border-width:1px; cursor: pointer;'); elem.value='Close'; elem.addEventListener('click', panel_close, true); td3.appendChild(elem); // Editor... var newElem=document.createElement('div'); newElem.setAttribute('style','width:100%; margin-top:20px;'); var div=document.createElement('div'); div.setAttribute('style','position:relative; display:block; margin-top:3px; color:black; height:30px; font-family:'+FONT_ARIAL); newElem.appendChild(div); var divC=document.createElement('div'); divC.setAttribute('style','position:absolute; left:0px; top:0; width:26px; height:18px; padding:0px; text-align:center; font-size:9px; padding-top:4px; background:rgba(192,192,192,0.8); border:1px solid gray; cursor:pointer;'); divC.textContent='Clear'; div.appendChild(divC); var div1=document.createElement('textarea'); div1.setAttribute('style','position:absolute; left:30px; top:0; width:'+(KEY_DIV_WIDTH+2)+'px; height:18px; padding:2px; margin:0px; margin-top:1px; border:0px; font-size:15px; background:rgba(255,255,255,0.75);'); div1.value=''; div.appendChild(div1); var div2=document.createElement('textarea'); div2.setAttribute('style','position:absolute; left:'+(KEY_DIV_WIDTH+38)+'px; top:0; width:'+(704-KEY_DIV_WIDTH)+'px; height:18px; padding:2px; margin:0px; margin-top:1px; border:0px; font-size:15px; background:rgba(255,255,255,0.75);'); div2.value=''; div.appendChild(div2); var divS=document.createElement('div'); divS.setAttribute('style','position:absolute; left:748px; top:0; width:24px; height:18px; padding:0px; text-align:center; font-size:9px; padding-top:4px; background:rgba(192,192,192,0.8); border:1px solid gray; cursor:pointer;'); divS.textContent='Save'; div.appendChild(divS); newElem.appendChild(div); pdiv.appendChild(newElem); gvar.editKey=div1; gvar.editData=div2; divC.addEventListener('click', clear_Edit, true); divS.addEventListener('click', save_Edit, true); // Data... gvar.dataElem=document.createElement('div'); gvar.dataElem.setAttribute('style','position:relative; left:0; right:0;'); pdiv.appendChild(gvar.dataElem); document.body.appendChild(gvar.panel); refresh_data(); } function clear_Edit(e) { e.preventDefault(); gvar.editKey.value=''; gvar.editData.value=''; } function save_Edit(e) { e.preventDefault(); switch(gvar.storageId) { case 0: case 1: case 2: gvar.storage.setItem(gvar.editKey.value,gvar.editData.value); clear_Edit(e); } } function fill_Edit(e) { e.preventDefault(); var id=parseInt(e.target.textContent,10); gvar.editKey.value=gvar.storage.key(id); gvar.editData.value=gvar.storage.getItem(gvar.editKey.value); } function panel_close(e) { e.preventDefault(); if(gvar.overlay!=null) { removeElement(gvar.overlay); gvar.overlay=null; removeElement(gvar.panel); gvar.panel=null; } } function panel_clear(e) { e.preventDefault(); if(gvar.storage!=null) { if(confirm('Clear all '+gvar.name+' data ?')) { gvar.storage.clear(); } } } function refresh_data() { if(!gvar.storage) { return; } if(!gvar.dataElem) { return; } var lg=0; switch(gvar.storageId) { case 0: lg=sessionStorageLength(); break; case 1: lg=localStorageLength(); break; case 2: lg=globalStorageLength(); break; } if(!(lg>=0)) { return; } var newElem=document.createElement('div'); newElem.setAttribute('style','width:100%; margin-top:10px;'); var div=document.createElement('div'); div.setAttribute('style','position:relative; display:block; margin-top:3px;'); newElem.appendChild(div); var div1=document.createElement('div'); div1.setAttribute('style','position:relative; left:0; top:0; width:24px; height:17px; padding:2px; text-align:center; background:rgba(255,255,255,0.4);'); div1.textContent='#'; div.appendChild(div1); var div2=document.createElement('div'); div2.setAttribute('style','position:absolute; left:30px; top:0; width:'+KEY_DIV_WIDTH+'px; height:17px; padding:2px; padding-left:4px; background:rgba(255,255,255,0.4);'); div2.textContent='Key'; div.appendChild(div2); var div3=document.createElement('div'); div3.setAttribute('style','position:absolute; left:'+(KEY_DIV_WIDTH+38)+'px; top:0; width:'+(702-KEY_DIV_WIDTH)+'px; height:17px; padding:2px; padding-left:4px; background:rgba(255,255,255,0.4);'); div3.textContent='Data'; div.appendChild(div3); newElem.appendChild(div); for(var h=0;h<lg;h++) { var key=gvar.storage.key(h); if(typeof key=='undefined') { key='<undefined>'; } var data=gvar.storage.getItem(key); if(typeof data=='undefined') { data='<undefined>'; } var div=document.createElement('div'); div.setAttribute('style','position:relative; display:block; margin-top:3px;'); var div1=document.createElement('div'); div1.setAttribute('style','position:relative; left:0; top:0; width:24px; height:17px; text-align:right; padding:2px; background:rgba(255,255,255,0.2); font-size:13px; cursor:pointer;'); div1.textContent=h; div.appendChild(div1); var div2=document.createElement('div'); div2.setAttribute('style','position:absolute; left:30px; top:0; width:'+(KEY_DIV_WIDTH+2)+'px; height:17px; padding:2px; background:rgba(255,255,255,0.2); font-size:13px; overflow:hidden;'); div2.textContent=key; div.appendChild(div2); var div3=document.createElement('div'); div3.setAttribute('style','position:absolute; left:'+(KEY_DIV_WIDTH+38)+'px; top:0; width:'+(704-KEY_DIV_WIDTH)+'px; height:17px; padding:2px; background:rgba(255,255,255,0.2); font-size:13px; overflow:hidden;'); div3.textContent=data; div.appendChild(div3); var div4=document.createElement('div'); div4.setAttribute('style','position:absolute; left:748px; top:0; width:10px; height:15px; text-align:center; padding:2px; background:rgba(128,128,128,0.8); border:1px solid gray; color:#660000; font-weight:bold; cursor:pointer;'); div4.textContent='X'; div4.setAttribute('value',key); div.appendChild(div4); div4.addEventListener('click',deleteItem,true); newElem.appendChild(div); div1.addEventListener('click', fill_Edit, true); } replaceElement(gvar.dataElem,newElem); gvar.dataElem=newElem; } function deleteItem(event) { event.preventDefault(); if(!gvar.storage) { return; } var key=event.target.getAttribute('value'); if(confirm('Delete '+key+' ?')) { gvar.storage.removeItem(key); } } /******************************************** License ****************************************************** *** Creative Commons 3.0 *** *** by: BY-attribution (Requirement to acknowledge or credit the author "GIJoe") *** *** nc: Non-Commercial (Use for commercial purpose is forbidden) *** *** sa: Share Alike (Derivative works must be under the same or similar license to this one) *** ***********************************************************************************************************/ function main() { // Check if html page with div or table or link... var check=null; try { check=document.evaluate('//div',document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue; } catch(e) {} if(!check) { try { check=document.evaluate('//table',document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue; } catch(e) {} } if(!check) { try { check=document.evaluate('//a',document,null,XPathResult.ANY_UNORDERED_NODE_TYPE,null).singleNodeValue; } catch(e) {} } if(!check) { return; } // Create infoBox var top1=DIV_HEIGHT+1; var htot=(DIV_HEIGHT+1)*5+1; var infoBox=document.createElement('div'); infoBox.setAttribute('style','position:fixed; display:none; width:149px; height:'+htot+'px; opacity:'+DIV_OPACITY+'; right:3px; top:3px; background:'+COLOR_TITLE+'; color:'+COLOR_INFO_TEXT+'; white-space:nowrap; text-align:center; vertical-align:middle; overflow:auto; z-index:'+DIV_ZINDEX+'; font-family:'+FONT_ARIAL+' !important; font-size:15px; font-weight:normal; text-decoration:none; line-height:17px;'); var div5=document.createElement('div'); div5.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0; left:0px; right:0px; border:1px solid gray; cursor: move; font-weight:bold; padding-right:'+DIV_HEIGHT+'px; color:'+COLOR_TITLE_TEXT); div5.textContent='Storage Viewer'; user_select(div5,'none'); infoBox.appendChild(div5); var div6=document.createElement('div'); div6.setAttribute('style','position: absolute; display :block; height:'+(DIV_HEIGHT-4)+'px; width:'+(DIV_HEIGHT-4)+'px; top:2px; right:2px; border:1px solid gray; cursor:pointer; background:'+COLOR_CLOSE+'; font-size:13px; line-height:14px; color:'+COLOR_CLOSE_TEXT); div6.textContent='X'; user_select(div6,'none'); infoBox.appendChild(div6); var divSS=document.createElement('div'); divSS.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:'+top1+'px; left:0; right:0; border:1px solid gray; cursor:pointer;'); var divSS1=document.createElement('div'); divSS1.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; left:2px;'); divSS1.textContent='Session:'; divSS.appendChild(divSS1); var divSS2=document.createElement('div'); divSS2.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; right:0; width:86px; text-align:left;'); divSS2.textContent='N/A'; divSS.appendChild(divSS2); infoBox.appendChild(divSS); var divLS=document.createElement('div'); divLS.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:'+(top1*2)+'px; left:0; right:0; border:1px solid gray; cursor:pointer;'); var divLS1=document.createElement('div'); divLS1.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; left:2px;'); divLS1.textContent='Local:'; divLS.appendChild(divLS1); var divLS2=document.createElement('div'); divLS2.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; right:0; width:86px; text-align:left;'); divLS2.textContent='N/A'; divLS.appendChild(divLS2); infoBox.appendChild(divLS); var divGS=document.createElement('div'); divGS.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:'+(top1*3)+'px; left:0; right:0; border:1px solid gray; cursor:pointer;'); var divGS1=document.createElement('div'); divGS1.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; left:2px;'); divGS1.textContent='Global:'; divGS.appendChild(divGS1); var divGS2=document.createElement('div'); divGS2.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; right:0; width:86px; text-align:left;'); divGS2.textContent='N/A'; divGS.appendChild(divGS2); infoBox.appendChild(divGS); var divDS=document.createElement('div'); divDS.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:'+(top1*4)+'px; left:0; right:0; border:1px solid gray; cursor:default;'); var divDS1=document.createElement('div'); divDS1.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; left:2px;'); divDS1.textContent='DB:'; divDS.appendChild(divDS1); var divDS2=document.createElement('div'); divDS2.setAttribute('style','position: absolute; display :block; height:'+DIV_HEIGHT+'px; top:0px; right:0; width:86px; text-align:left;'); divDS2.textContent='N/A'; divDS.appendChild(divDS2); infoBox.appendChild(divDS); gvar.infoBox=infoBox; gvar.divSS=divSS; gvar.divSSitem=divSS2; gvar.divLS=divLS; gvar.divLSitem=divLS2; gvar.divGS=divGS; gvar.divGSitem=divGS2; gvar.divDS=divDS; gvar.divDSitem=divDS2; document.body.appendChild(infoBox); gvar.moveM=false; div5.addEventListener('mousedown',downTitleInfoBox, true); window.addEventListener('mouseup',upTitleInfoBox, true); window.addEventListener('mousemove',moveTitleInfoBox, true); div6.addEventListener('click', hideInfoBox, true); divSS.addEventListener('click', sessionStorageDisplayEvent, true); divLS.addEventListener('click', localStorageDisplayEvent , true); divGS.addEventListener('click', globalStorageDisplayEvent , true); if(gvar.isOpera) { window.addEventListener('keypress',keyPressed,true); } else { window.addEventListener('keydown',keyPressed,true); } resetPos(); var used=false; if(SHOW_AT_START>2) { gvar.infoBox.style.setProperty('display','block',''); } else if(SHOW_AT_START>1 && (sessionStorageLength()>=0 || localStorageLength()>=0)) { gvar.infoBox.style.setProperty('display','block',''); } else if(SHOW_AT_START>0 && (sessionStorageLength()>0 || localStorageLength()>0 )) { gvar.infoBox.style.setProperty('display','block',''); } unsafeWindow.addEventListener('storage', storageEvent, true); refresh(); } function waitForReady(callback) { var docState=null; try { docState=unsafeWindow.document.readyState; } catch(e) { docState=null; } if(docState) { if(docState!='complete') { GM_log('Document not loaded ('+docState+'), waiting...',0); window.setTimeout(waitForReady,150,callback); return; } else { GM_log('Document loaded ('+docState+'), launching...',0); } } callback(); } waitForReady(main); })(); // ]]>
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址