2008/03/30

Firefoxのメニューバーを消す

MenuXという拡張の関数を呼んでいたのですが、復旧時に困ったので中身を見てみました。

以下はmenuxoverlay.jsの関数をちょっといじった物。

  1. // メニューバーの表示/非表示切り替え  
  2. function toggleToolbarMenubar() {  
  3.     var menubar = document.getElementById('toolbar-menubar');  
  4.   
  5.     if ( menubar.getAttribute('collapsed').search(/true/i) != -1 ) {  
  6.         menubar.setAttribute('collapsed','false');  
  7.         menubar.setAttribute('hidden','false');  
  8.     } else {  
  9.         menubar.setAttribute('collapsed','true');  
  10.     }  
  11.       
  12.     document.persist(menubar.id, "collapsed");  
  13. }  
  14.   
  15. // メニューバーの表示  
  16. function expandToolbarMenubar() {  
  17.  var menubar = document.getElementById('toolbar-menubar');  
  18.   
  19.     menubar.setAttribute('collapsed','false');  
  20.     menubar.setAttribute('hidden','false');  
  21.   
  22.  document.persist(menubar.id, "collapsed");  
  23. }  
  24.   
  25. // メニューバーの非表示  
  26. function collapseToolbarMenubar() {  
  27.  var menubar = document.getElementById('toolbar-menubar');  
  28.   
  29.     menubar.setAttribute('collapsed','true');  
  30.   
  31.  document.persist(menubar.id, "collapsed");  
  32. }  
// メニューバーの表示/非表示切り替え function toggleToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); if ( menubar.getAttribute('collapsed').search(/true/i) != -1 ) { menubar.setAttribute('collapsed','false'); menubar.setAttribute('hidden','false'); } else { menubar.setAttribute('collapsed','true'); } document.persist(menubar.id, "collapsed"); } // メニューバーの表示 function expandToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); menubar.setAttribute('collapsed','false'); menubar.setAttribute('hidden','false'); document.persist(menubar.id, "collapsed"); } // メニューバーの非表示 function collapseToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); menubar.setAttribute('collapsed','true'); document.persist(menubar.id, "collapsed"); }

このコード中のdocumentはブラウザのxulの事なので、ブックマークレットからは使えませんね。keyconfigとかMouse GesturesとかGreas Monkeyなどのアドオンの中から呼ばないと効かないみたいです。

復旧だけが目的なら、プロファイルフォルダにあるlocalstore.rdfを書き換えることでも、表示/非表示を切り替えられます。

  1. <RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar"  
  2.                  iconsize="small"  
  3.                  hidden="true"  
  4.                  currentset="menubar-items,wrapper-menuxOptionsToolbarBtn,spring,throbber-box"  
  5.                  collapsed="false" />  
<RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar" iconsize="small" hidden="true" currentset="menubar-items,wrapper-menuxOptionsToolbarBtn,spring,throbber-box" collapsed="false" />

上記の部分を探して、hiddenとかcollapsedをfalseにすれば表示されます。スクリプト中の"document.persist()"がlocalstore.rdfを書き換えている模様。

markbokil.org - software and psychology