- userChrome.js -
【本擴充套件亦適用於 SeaMonkey, Pigfoot Firefox, Flock, NetScape 等瀏覽器上】
介紹
這東西可以讓你寫 JavaScript 來加強瀏覽器功能,比如說:
- 用中鍵把巴哈哈啦區的超連結直接開在新分頁
- 右鍵出現下載 nico 跟 youtube 影片的選項(註:下載的影片請只供個人娛樂使用,勿任意散佈。)
- 快按一下中鍵在背景開新分頁、長按則跳焦點到開出的新分頁上
安裝步驟
- 安裝 Firefox 瀏覽器。建議先安裝官方版本的 Mozilla Firefox ,再下載社群版本的 Pigfoot Firefox 來用。(對速度不計較的人,裝官方版本就好。)
- 安裝 userChrome.js。從 [Ext] userChrome.js - MozillaZine Forums 下載(Download)安裝 userChrome.js 擴充套件(下載後拖拉到 Fx 視窗安裝)。
- 重開 Firefox 。裝好後重開 Fx ,讓設定檔資料夾下的 chrome 資料夾建立 userChrome.js 一檔。
- 【自選項目】分開不同程式碼檔案。需要將不同用途的 js 分開建檔存放時,請使用在下載頁中提供的 Sub-Script/XUL Loader 。(不需要的請直接寫進 userChrome.js 文件末端就好)
- 加裝所需功能。js 使用方式是、把別人給的 js 碼,貼到 userChrome.js 中,存檔後重開 Fx 就好。
- 【自選項目】套用分開的程式碼檔案。使用 Sub-Script/XUL Loader 後,會自動抓取 chrome 資料夾下所有的 *.uc.js 檔,所以複製 userChrome.js 來修改檔名跟內容,就可以把不同用途的 js 獨立開來了。
使用範例及說明
- 「巴哈姆特電玩資訊站」的哈啦區文章裡面那些超連結可以直接用滑鼠中鍵開啟至新分頁中。(註:這個功能作者有改寫個新版,舊版的會讓 Fx3 的滑鼠中鍵點連結失效,建議更新一下。)
- 快按一下中鍵在背景開新分頁,長按則跳焦點到開出的新分頁上。(原作者另外寫了擴充套件版本的,有興趣的也可以試試這個。→MClickFocusTab 1.0)
- 從滑鼠右鍵選單中,叫出直接下載觀看中的 nico video 動畫的選項(Download FLV)。(注意,別在影片跟字幕的那一區按右鍵,不然跑出來的會是 flash plugin 的選單。還有,某些新申請的帳號有登入時段限制,這點請參考這篇後面幾段。另外,這東西建議等正確完整看完影片後,再右鍵下載比較好,因為有時候網路狀況不好,會下載失敗的檔案回來。或者可以試看看 TAGIRI Toolbar 。)
Troubleshooting
不能使用時可以做的除錯動作:
- 檢查那些 js 檔案的『檔案類型』是不是 JScript 或 JavaScript 。
- 檢查那些 js 檔案的『存放路徑』是不是你正在使用中的 Firefox 設定檔位置下的 chrome 資料夾。
- 有沒有重開 Firefox 來重新載入那些 js 檔案。
- 有沒有把 Sub-Script/XUL Loader 程式碼放在 userChromem.js 檔案中。
還是不行的,請直接下載我打包好的 js 檔案後,解壓縮在 chrome 資料夾下。(不過要注意一下,裡面沒放下載 YouTube 影片的,個人是推薦用蓋特一號解讀出影片檔案網址,再開續傳軟體抓啦。)
新增說明 (2008.09.22)
我剛發現官網討論串的 HTML 好像有很多失效了,所以在這寫上那裡面的一些程式碼,還有最新的 userChrome.js 討論串。
最新討論串:
Sub-Script/XUL Loader:
/* :::::::: Sub-Script/XUL Loader ::::::::::::::: */ // automatically includes all files ending in .uc.js and .uc.xul from the profile's chrome folder (function() { var getURLSpecFromFile = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromFile; var chromeDir = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsILocalFile); var files = chromeDir.directoryEntries.QueryInterface(Components.interfaces.nsISimpleEnumerator); var xul_files = []; while (files.hasMoreElements()) { var file = files.getNext().QueryInterface(Components.interfaces.nsIFile); if (/\.uc\.js$/i.test(file.leafName)) { setTimeout(function(aFile) { Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript(getURLSpecFromFile(aFile)); }, 0, file); } else if (/(^userChrome|\.uc)\.xul$/i.test(file.leafName)) { xul_files.push(file); } } setTimeout(function() { if (xul_files.length > 0) { document.loadOverlay(getURLSpecFromFile(xul_files.shift()), null); setTimeout(arguments.callee, 0); } }, 0); })();
15 comments:
我已經安裝好也找到userChrome.js
我現在不知道要怎麼使用Sub-Script/XUL Loader
以下是我的作法
我先將userChrome.js以記事本開啟
再把Sub-Script/XUL Loader的程式碼貼上,並重開FX
再把
http://blog.libelabo.jp/2007/04/05/nicovideo-download-userchrome-js/
http://d.hatena.ne.jp/fls/20070110/p1
這兩個丟到記事本裡,重新命名
nicoDownloader.uc.js、youtubeDownloader.uc.js
丟到C:\Documents and Settings\*\Application
Data\Mozilla\Firefox\Profiles\wdobh6z4.default\chrome裡
可是沒有用阿囧
請問我哪裡弄錯了
先行感謝你的回應<(_ _)>
上面的匿名訪客你好。
嗯,照理說, js 檔案不管存成什麼字元編碼都無所謂,因為主要的程式碼部分是英數符號這些東西。
然後你說你用 Windows 記事本處理,而我實驗的結果是,不管 Windows 有沒有調整成顯示副檔名,只要另存新檔時,檔名結尾有打 .js ,就一定會存成有效的 JavaScript 檔案(在 Windows 中是用 JScript 這微軟弄的規格來表示檔案類型就是)。
所以我只能想,會不會是你的 userChrome.js 跟其它的 .uc.js 放錯了地方而已……
總之我懶得猜了,你現在既然已經裝好 userChrome.js 擴充套件的話,那我直接提供那些 js 檔案給你就好了。 XD
下載我打包好的一些 userChrome.js 檔案(內容跟原始提供者的一樣;編碼是 UTF-8 w/o BOM 。)
如果以後還有想用的,但是寫好的檔案一樣沒辦法使用的話,試試看換 MadEdit 編輯器處理,這個是免安裝,也有提供中文介面的切換。
用 MadEdit 開啟 userChrome.js ,然後在工具列選單的「檢視(View)」,把編碼調成「 UTF-8 」方便閱讀 UTF-8 文件,然後「工具(Tool)」選項中的第六個也要調成 UTF-8 ,第三個 Unicode BOM 相關的,也要檢查看看是不是沒有 BOM 的。這樣子應該只要弄好的檔案的「檔名」跟「存放位置」沒弄錯,就一定可以用。(其它設定請在「工具 → 選項」中自行調整)
感謝您
NICO順利抓下
之前一直在影片上按右鍵難怪沒用(倒
啊,原來是那種問題,真的是完全想不到,因為我知道那兒點下去是 flash 選單,所以不會在那點的關係…… Orz
感謝回報,我來修一下文章。
不好意思,我照著步驟使用
唯獨nico的影片始終都抓不下來(youtube ok)
使用蓋特一號也沒反應
跟我的帳號是非付費的有關嗎?
謝謝
上面的 匿名 你好。
你只提出這點資料,我判斷不出來你是在哪裡出問題的哦。 ^^;
要用這功能抓 nico 影片,要先能登入,然後建議等看完影片,檔案放進電影暫存檔中時,再來抓取比較快。然後要抓 nico 影片,記得滑鼠別在影片跟字幕的區域按這樣。
另外,你也要確認,你的帳號是不是二十四小時都可以登入的。不是的話,只能在日本時間早上兩點到晚上七點間登入使用而已(請自行換算時區)。
另外抓 youtube 我是建議用續傳軟體啦,瀏覽器或蓋特一號都不能續傳,而且還得等很久才會開始下這樣。 :(
瞭解,果然是需要登入才能抓
這幾天自己網路有問題,修好的時候已經超過六點了orz
沒多加測試就發問,抱歉
wini果然好人,( ′▽`)-o囯囚圃(特級卡)
XD
總之註冊完等兩個月,沒問題的話,應該就可以二十四小時登入了吧。(官方會在首頁標示開放到幾號這樣)
不過我猜六點前抓完,只要暫存檔的檔案沒清掉,應該還是能抓,只是我沒試過不確定就是。
hi wini
請問這些user script的反安裝
是否是只要到chrome的資料夾下
將該js檔刪除即可?
因為現在要下nico的影片
nicofox對我而言是比較好的選擇
我不太喜歡為了做到某件事特地為它裝一個軟體呢…
> f.f
嗯,沒錯,你知道是哪個 js 檔案的話,砍掉那個就好了。(如果你是下載我弄的那個打包檔的話……話說那個檔也好舊,該砍掉了,不然裡面會有一個在 Fx3 上出問題。)
另外我印象中,這篇裡面下載 Nico/YouTube 的那些,好像因為 Nico 改版也失效了。
但是只要進附加元件管理,把 userChrome 這擴充停用或砍掉也就好了,沒這擴充套件的話,那些 js 檔案應該是不會運作的。
但把這個擴充套件砍掉的話
這樣一來也沒辦法改造網頁了(哭哭
wini下次來寫篇user script的教學吧?
> f.f
改造網頁的好像是 userChrome.css 或是 Stylish 跟 Greasemonkey 的東西,你如果砍錯的話……嗯,建議你開副檔名顯示確認一下啦,我不太確定你說的是什麼,可是我這邊寫的教學是有不必動 userChrome.js 檔案的方法,就是在 userChrome.js 寫「Sub-Script/XUL Loader」,把不同用途的 js 檔案分開放那招。
然後 JavaScript 我不熟,寫不出可以改變操作習慣或改造網頁內容的東西,你還是上 MozTW 問人看看比較好。
(有開副檔名顯示的話,把 js 檔的副檔名尾巴加些字,「Sub-Script/XUL Loader」這個寫在 userChrome.js 中的玩意就不會去讀那些改過副檔名的舊 js 檔了。)
我重新整理一下停掉 userChrome.js 擴充套件的方法:
一、停用 userChrome.js (會把所有的 chrome 資料夾下的 js 也停用)
二、有使用「Sub-Script/XUL Loader」時:
1、砍掉知道用途的個別 js 檔(如果你有把不同用途的 JavaScript 建立成獨立檔案的話)
2、把個別 js 檔的副檔名增改些字,讓「Sub-Script/XUL Loader」不會去讀取。(印象中只會讀取副檔名完全吻合「js」兩字的檔案,所以副檔名不同時就會忽略。)
更正一下,會讀的是「.uc.js」結尾的檔案。
然後原始討論串的「Sub-Script/XUL Loader」我複製過來了。
張貼留言