修改 Google Chrome 的外掛 - RePlurk Chrome 的javascript

用Firefox上噗浪(Plurk)的人,有些都會裝GreaseMonkey這個套件+RePlurk script。只不過我在Google Chrome on Linux上…雖然他預設支援直接安裝userscripts,但是我從來沒有成功跑起來過orz|| (就是可以安裝,但是裝了之後plurk就開不起來了QQ)

後來我發現有個RePlurk Chrome套件,他可以幫你的plurk頁面加上一個"RePlurk"的按鈕….就像我以前在Firefox上用的那樣(dance) 噢…可是有個問題…我喜歡的轉噗形式是:「[轉噗]: xxxxxx」,但是RePlurk Chrome的轉噗形式是:「([ReP]) 作者: xxxxxx」,最困擾的就是他不能自訂(angry)!(GreaseMonkey有提供介面讓你修改scripts)

這篇就是為了解決這種問題的…..:P 首先,我的平台是Linux,更詳細的說,是Ubuntu 10.04 (不過其實在openSUSE上也是一樣)…..而這個套件把他的javascript放在哪裡呢?答案如下:

$HOME/.config/google-chrome/Default/Extensions/beaghhigecidoamlpclhiboaeonkceea/0.1.1/RePlurk.js

補充:在MacOX 10.6.3上是放在

~/Library/Application Support/Google/Chrome/Default/Extensions/beaghhigecidoamlpclhiboaeonkceea/0.1.1/RePlurk.js

那個一長串的是這個擴充套件的ID(在Chrome的擴充套件頁按「開發人員模式」就可以看到),0.1.1是我現在使用的版本…也就是說以後如果這個套件改版可能就會小小換個路徑XD"

那該怎麼辦?

人類哪有這麼強的記憶力….其實我每次都忘記他放在哪裡!我是這麼找到這個檔案的….

$ find ~ |grep -i replurk

其中就會看到RePlurk.js這個檔案了….:P 在windows上一樣可以用搜尋功能來找唷,我想會差不多的吧。

找到檔案之後,就是要修改他的內容了。呃….我不知道該怎麼說明…..他裡面把code都擠在一行了XD 其實可以用搜尋取代啦,但是要有點js的基礎才行,不要改到變數名稱了,改字串就好。此外,對於轉噗的連結(原本是叫做"RePlurk")我也不太滿意….所以我把他改成"轉噗"了。

講東西只講一半,不教怎麼改一定會被看文章的人追殺!所以提供一個替代方案,我把我修改的RePlurk.js分享給大家,以下,請笑納:D

var GM_JQ_src = document.createTextNode("var ReP_Message={};var p=window.Plurks;var o_expand;if(p){o_expand=p.expand;p.expand=function(aa){o_expand(aa);if(typeof ReP_Message.hrefProcessed=='undefined'){ReP_Message.hrefProcessed=true;var ba=document.getElementById('form_holder').lastChild;var ib=document.getElementById('input_big');if(ba&&ib){var ca=document.createElement('a');var da=document.createElement('div');da.setAttribute('class','perma_link');da.id='RePlurkDiv';ca.id='RePlurk';ca.setAttribute('href','javascript:doRePlurk(ReP_Message.owner_id, ReP_Message.raw, ReP_Message.link);');ba.appendChild(da).appendChild(ca).appendChild(document.createTextNode('轉噗'));}}var ea=window.getPD(aa).obj;ReP_Message.link='http://plurk.com/p/'+(ea.plurk_id).toString(36);ReP_Message.raw=ea.content_raw;ReP_Message.owner_id=ea.owner_id;}}function doRePlurk(fa,ga,ha){var ib=document.getElementById('input_big');var ia=window.SiteState.getUserById(fa).nick_name;var ja=ha+' ([轉噗]): '+ga;if(ib){ib.value=ja;p._removeExpand();window.MaxChar.updateBig();}}");  

var GM_JQ = document.createElement('script');  
GM_JQ.type = 'text/javascript';  
GM_JQ.appendChild(GM_JQ_src);  
document.getElementsByTagName('body')[0].appendChild(GM_JQ);

Last modified on 2010-06-02