1. 概要
    1. スクリーンショット
  2. 使い方
    1. バージョン
    2. ソースコード
  3. コメント (6)
  4. トラックバック
更新日時
2009-02-12 19:07
永続的 URI
http://www.code-404.net/articles/browsers/main-menus-in-one
タグ

概要

メインメニューの項目を 1 つにまとめる userChrome.js 用スクリプトです。

スクリーンショット

Main Menus In One

使い方

以下のソースコードを userChrome.js に貼り付けるだけです。サブスクリプトローダーを使用している場合は、 "任意の名前.uc.js" とし、 chrome フォルダに置くだけです。

バージョン

1.0 - 2007-07-19
公開
1.0.2 - 2007-08-24
起動時にメニューが消える不具合を修正

ソースコード

// ==UserScript==
// @name           Main Menus in One
// @version        1.0.2
// @description    Gather up items of the main menu to 1 item.
// @author         Shinya
// @namespace      http://www.code-404.net/
// @homepage       http://www.code-404.net/articles/browsers/main-menus-in-one
// @compatibility  Firefox 2.0 3.0
// @include        chrome://browser/content/browser.xul
// @Note           
// ==/UserScript==

(function(){
  var menuBar = document.getElementById("main-menubar");
  
  var locale = Components.classes["@mozilla.org/preferences-service;1"].
    getService(Components.interfaces.nsIPrefBranch);
  locale = locale.getCharPref("general.useragent.locale");
  
  // 「メニュー(M)」を作成
  var menu = document.createElement("menu");
  menu.setAttribute("label", locale.indexOf("ja") == -1 ? "Menu" : "\u30e1\u30cb\u30e5\u30fc");
  menu.id = "menu-menu";
  menu.setAttribute("accesskey", "M");
  menu.setAttribute("disabled", false);
  
  // メニューバーから既存のアイテムを抜く
  var items = new Array();
  for(var i = 0;i < menuBar.childNodes.length;i++){
    items.push(menuBar.childNodes[i]);
  }
  
  var menuPopup = document.createElement("menupopup");
  menuPopup.id = "menu_menusPopup";
  
  menu.appendChild(menuPopup);
  
  // 「メニュー(M)」に既存アイテムを追加
  for(var i = 0;i < items.length;i++){
    menuPopup.appendChild(items[i]);
  }
  
  menuBar.appendChild(menu);

})();

コメント

えんぴつ - 2007-08-24 15:54

報告です

私の環境(WIndows2000SP4 Firefox2.0.0.6)では起動時にメニューまで消えてしまいます

最大化、元のサイズに戻す、カスタマイズを開くなどすると戻ってきます

シンヤ - 2007-08-24 19:52

「メニュー」の挿入のタイミングが悪いのでしょうか。 1.0.2 にて最後に挿入するようにしましたので、試してみてください。

もしも、それでも不具合が出るならば、ファイル名の先頭に 0 を付けるなどして、最初に読み込まれるようにしてみてください。

まだ、不具合が出るようでしたら、エラーコンソールを確認してみてください。何もエラーが出て無いならば、他の userChrome スクリプトと競合しているのかも知れません。

えんぴつ - 2007-08-27 18:53

正常に機能しました

ありがとうございました

シンヤ - 2007-08-27 20:50

良かったです。ちなみに、どの対処法で解決されました?

あかえんびつ - 2007-11-27 21:53

こんばんは。

メニュー(M) となっているところを、アイコン表示だけにすることは可能ですか?

シンヤ - 2007-11-28 00:25

出来ない事はありませんが、アクセスキーを失う事になります。「メニューを作成」を以下のファイルのように書き換えてください。

画像の data スキーマ作成は URI kitchen を参考にしてください。

トラックバック

トラックバック URI
http://www.code-404.net/cms/trackback/9
関連記事
検索

情報