OperaでクリックしたタグのAttributesを表示するBookMarkLet

最近、Operaを使い始めましたが
「選択範囲のソースを見る」というのがわからない。
nameやidを調べるのに、結構面倒だったので
クリックしたエレメントのAttributesを表示するBookMarkLetを書きました。

javascript:(function()%7Bfunction%20checkElm()%7Bthis.elm_view=this.createElm('div',%7B%7D,%7Bwidth:'300px',height:'300px',background:'#000',position:'absolute',display:'none',zIndex:1000000,textAlign:'center'%7D);var%20_this=this;this.elm_btn_x=this.createBtn('x',function()%7B_this.evtClose()%7D);this.elm_btn_f=this.createBtn('forms',function()%7B_this.checkForms()%7D);this.elm_btn_p=this.createBtn('parent',function()%7B_this.checkParent()%7D);this.elm_chk=this.createElm('input',%7Btype:'checkbox'%7D);this.elm_str=this.createElm('span',%7BinnerText:'SRC'%7D,%7Bcolor:'#fff',fontSize:'11px'%7D);this.elm_area=this.createElm('textarea',%7B%7D,%7Bwidth:'290px',height:'270px',fontSize:'14px'%7D);this.elm=new%20Object();this.elm_chk.onclick=function()%7B_this.clickElm(false)%7D;this.elm_view.appendChild(this.elm_btn_x);this.elm_view.appendChild(this.elm_btn_f);this.elm_view.appendChild(this.elm_btn_p);this.elm_view.appendChild(this.elm_chk);this.elm_view.appendChild(this.elm_str);this.elm_view.appendChild(this.elm_area);document.body.appendChild(this.elm_view);var%20_clickElm=function()%7B_this.clickElm(true)%7D;document.attachEvent('onmouseup',_clickElm);window.onunload=function()%7Bdocument.detachEvent('onmouseup',_clickElm)%7D;%7D;checkElm.prototype=%7BcheckForms:function()%7Bwindow.event.cancelBubble=true;var%20arr=%5B%5D;var%20obj=document.getElementsByTagName('form');for(var%20i=0;i%3Cobj.length;i++)%7Barr.push(this.getButes(obj%5Bi%5D));%7D;this.popup(arr.join('%5Cr%5Cn'+new%20Array(39).join('-')+'%5Cr%5Cn'));%7D,checkParent:function()%7Bwindow.event.cancelBubble=true;var%20str_text=this.getButes(this.elm.parentNode);if(str_text)this.popup(str_text);%7D,popup:function(str_text,boo)%7Bthis.elm_area.value=str_text;if(boo)%7Bvar%20num_x=window.event.pageX;var%20num_y=window.event.pageY;if(num_x%3Edocument.documentElement.offsetWidth-330)num_x=num_x-300;if(num_y%3Edocument.documentElement.offsetHeight-330)num_y=num_y-300;this.elm_view.style.top=num_y+10;this.elm_view.style.left=num_x+10;%7D;this.elm_view.style.display='block';%7D,clickElm:function(boo)%7Bwindow.event.cancelBubble=true;var%20elm=window.event.srcElement;var%20str_text=this.getButes(elm);if(str_text)this.popup(str_text,boo);%7D,getIndex:function(elm,str_name,str_type)%7Bvar%20obj=document%5B'getElementsBy'+str_type%5D(str_name);for(var%20i=0;i%3Cobj.length;i++)%7Bif(elm==obj%5Bi%5D)return%20str_name+'%20%5B'+i+'%5D';%7D;return%20str_name;%7D,getButes:function(elm)%7Bif(elm==this.elm_view%7C%7Celm==this.elm_btn_x%7C%7Celm==this.elm_btn_f%7C%7Celm==this.elm_btn_p%7C%7Celm==this.elm_area%7C%7Celm==this.elm_chk)return;this.elm=elm;elm.onclick=(elm.onmouseup=function(e)%7Be.preventDefault()%7D);if(this.elm_chk.checked)%7Breturn%20elm.outerHTML;%7Delse%7Bvar%20arr=%5Bthis.getIndex(elm,elm.tagName,'TagName')%5D;if(elm.innerText)arr.push('innerText='+elm.innerText.replace(/%5B%5Ct%5Cr%5Cn%5Cs%5D/g,'').substr(0,50));var%20obj_b=elm.attributes;for(var%20i=0;i%3Cobj_b.length;i++)%7Bif(obj_b%5Bi%5D.nodeValue)%7Bvar%20str_value=obj_b%5Bi%5D.nodeValue;if(obj_b%5Bi%5D.nodeName.toLowerCase()=='name')str_value=this.getIndex(elm,str_value,'Name');arr.push(obj_b%5Bi%5D.nodeName+'='+str_value);%7D;%7D;return%20arr.join('%5Cr%5Cn%5Cr%5Cn');%7D;%7D,evtClose:function()%7Bthis.elm_view.style.display='none';%7D,createBtn:function(str_text,func)%7Bvar%20elm=this.createElm('button',%7BinnerText:str_text%7D,%7BfintSize:'12px'%7D);elm.onclick=func;return%20elm;%7D,createElm:function(str_name,has_butes,has_css)%7Bvar%20elm=document.createElement(str_name);for(var%20i%20in%20has_butes)elm%5Bi%5D=has_butes%5Bi%5D;for(i%20in%20has_css)elm.style%5Bi%5D=has_css%5Bi%5D;return%20elm;%7D%7D;new%20checkElm();%7D)();

Operaは、どれくらいの文字まで書けるのかわかりませんけど
結構書けるみたいですね、これは便利ですわ。


実行するとこんな感じに↓

タグネームとnameの横にある[数字]は、そのネームでのインデックス。
getElementsByTagName('input')[0]←これ
getElementsByName('hogehoge')[0]←これ
ボタンは
x =閉じる
forms =form一覧
parent=表示中のノードの親ノード


1月11日更新
チェックボックスにチェックで、attributesではなく
outerHTMLを表示するようにしました。