前一篇文章已經知道Firefox介面內容及程式碼所在的檔案,本篇接著簡單的對Firefox的各工具做位置上的改變,以簡單的了解程式內容。
首先進行以下動作:
1、到Firefox資料夾下,進入 chrome資料夾,先找到「browser.jar」檔案
2、以任何可行的方式,將「browser.jar」壓縮檔開啟,但不必解壓縮,或是右鍵以7-Zip解壓軟體開啟
3、開啟壓縮檔後,進入 browser.jar\content\browser\ 之後,找到「browser.xul」檔案
4、將browser.xul從壓縮檔裡拉出來,建議先建立一個資料夾,再將browser.xul放到該資料夾,這個動作是準備對browser.xul做修改,我們無法從 browser.jar中修改此檔案,因而做這個動作。
5、開啟browser.xul(建議使用free ware : Notepad++ )。
開啟browser.xul檔案後,直接到行數第 733行,會看到 「<!--Menu-->」的字樣,可以確定以下開始的程式片段,會是Firefox的工具列至狀態列元件的所在位置。
a.接著在742及743行分別是 :
<menu id="file-menu" label="&fileMenu.label;"
accesskey="&fileMenu.accesskey;">
其中 <menu>元件即為工具列中「File、Edit、View、…、Help」程式片段。
b.程式在744行為
<menupopup id="menu_FilePopup" onpopupshowing="getContentAreaFrameCount』();">
此為工具列下拉式選單中的「分隔線」元件
c.程式745到749行的內容
<menuitem id="menu_newNavigator"
label="&newNavigatorCmd.label;"
accesskey="&newNavigatorCmd.accesskey;"
key="key_newNavigator"
command="cmd_newNavigator"/>
其中『<menuitem>』即為工具列中,下拉式選單中的項目
6、到目前為止,對於工具列的元件已有初步的了解,接著回到742、743行看看…
<menu id="file-menu" label="&fileMenu.label;"
accesskey="&fileMenu.accesskey;">
我們可以注意到「label="&fileMenu.label;"」這一段敘述中「&fileMenu.label」的地方,label屬性可以指定這個個按鈕項目顯示的文字,而「&fileMenu.label」可參照至其他檔案中的「fileMenu.label」所給定的數值。假如使用Notepade++編輯此xul檔案,可以將「fileMenu.label」做反白的動作,再按下ctrl + F,並指定搜尋所有解壓過的檔案,搜尋的檔案類型請設定為「*.js *.xml *.xul *.dtd」(以空白隔開搜尋值),設定好了之後按下「全找」:
在找到的資料中能夠發現在「en-US」資料夾中,browser目錄下browser.dtd檔案第137行有疑似指定fileMenu.label變數值的資料,雙擊載入此檔,程式會自動到達en-US中browser.dtd檔案的137行:
進入browser.dtd後,看到的137~139行的程式片段:
<!ENTITY fileMenu.label "File">
<!ENTITY fileMenu.accesskey "F">
<!ENTITY newNavigatorCmd.label "New Window">
我們可以試著將137行的 "File" 改成 "修改後"字樣,並且將下一行的 "F"改為 "修"。修改之後要注意的是「若要檢視修改的結果,一定要將修改過的檔案重新置入 *.jar中,重新開啟Firefox程式」,而將修改過的檔案置入 *.jar中的過程,Firefox是不能夠在開啟的狀態的,否則會無法取代檔案而失敗。以下是「修改後」工具列的結果:
對於其他按鈕顯示的文字,可以利用相同的方法去改變。
接著回到browser.xul檔案,注意以下行數:
第722行到1415行:工具列程式碼
第1417到1438行:瀏覽器頁面程式碼
第1440到1436行:狀態列程式碼
這裡試著將各物件的位置做搬移的動作,首先請將第1417到1438行的程式碼做「剪下」的動作,剪下後,到722行的前一行做「貼上」的動作。
以上簡單介紹小幅修改Firefox介面的動作,下一篇對程式內容做其他方面的介紹。
2009年8月11日 星期二
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言