2010年6月2日 星期三

修改 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);

3 則留言:

  1. 我照您的檔案修改,發現,只要出現中文,轉噗的功能就會失效,連按鈕都沒出現,反觀改成其他英文字,就正常!請問您是如何改成中文的?

    回覆刪除
  2. @恰巧路過 我也遇到此問題, 後來把js檔的編碼改成UTF8就正常了!

    回覆刪除
  3. @也是路過
    原來如此,因為我平常都用UTF-8 (在ubuntu下也不會想用big5...XD),所以想不到原因^^"

    回覆刪除