2008/03/30

Firefoxのメニューバーを消す

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

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

// メニューバーの表示/非表示切り替え 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を書き換えることでも、表示/非表示を切り替えられます。

<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