27th Aug, 2008

試解真正john 個辦公室 Online script

以下 function 係由真正john所寫, 我試下解釋一下等大家都理解, 等有興趣進一步學 javascript 既參詳下。

至於純粹用家就可能等大家有時間將段 script 整合咗先可以俾大家用。

function check_pressure() {
  pressure_tag = document.getElementById("app21745179649_main");
  if ( pressure_tag == null) return;
  str = (new RegExp("壓力:[^v]+")).exec(pressure_tag.innerHTML);
  if (str == null) return null;
  pressure = parseInt(str.toString().split(":")[1].split("/")[0]);
  return pressure;
}

document 喺 javascript 入面指而家 browser 睇緊個網頁既內容, 由 HTML (或者 XHTML) 轉換成一個 javascript object, 依個 object 係根據 Document Object Model (DOM) 既模式構成。

document 有個 function call 叫 getElementById, 即係話將 id 係 (“”) 入面既 HTML Element 抽出黎, 例如

<div id="test" />

咁你用 document.getElementById(“test”) 就會得到 以上個 div element, 然後就可以再加利用。

而 document.getElementById(“app21745179649_main”) 入面個 app21745179649_main, 你地可以喺個 HTML source 入面搵到。如果個 facebook application 係用 iframe 而唔係用 FBML, 就要 right click 個 facebook application 入面既內容, 然後 view frame source。 搵到你就會見到入面其實包含好多層既 HTML element, 但唔需要理咁多住。

如果搵唔到既話, 就會回傳 null, 即係乜都冇, 所以第三行就去判別佢係唔係 null

if ( pressure_tag == null) return;

除左點改到個古惑仔 Online script 用到落打工仔/辦工室 Online 外, 如果有乜唔明可以問下我, 因為我好少寫d 咁既guide, 可能要理解一下大家明唔明先再寫落去。

相關文章

回應

辦公室有bug既
哭= =
就算lv高過人,所有同伴高又高lv過人,裝都好過人
都要輸
咩道理
搞到我升lv鬼咁慢
變成誠實的工作者

john on 2008-08-27 19:35

哈哈。真係多謝 neo 哥幫我面上貼金。
要知道個 script 只係 neo 哥個 script 轉少少改出黎…

辦公室 online 玩左一陣,感覺上同事數目比古惑仔online 的同伴數目更重要。而且錢好似冇乜用,可以買野唔多,就係一尾請人食飯…

真正 john on 2008-08-28 08:27

打人d經仲多過做任-/-又冇野好買

ko on 2008-08-28 17:22

咁 iframe 之間應點用
// document.getElementById() ?

仲有 //RegExp(“壓力:[^v]+”)
‘[^v]‘ 點解?

同埋新版面點可以將 var ‘write’ 出黎做 debug?

Thx

DL on 2008-09-01 13:43

iframe 就麻煩d, 因為 iframe 入面既 page 未必係 facebook 度, 不過搵到之後都應該唔難處理。

再唔係乜 page 都經 greasemonkey。

原本都想寫 Regular Express 既解釋, 但係太複雜。

簡單黎講 ”壓力:[^v]+” 係一個 pattern, 類似 *.txt 入面, * 係代表任何字完(wildcat), 而 Regular Expression 係能處理更複雜情況既萬用附號。

[] 代表一個字元 (character), [] 入面既^代表唔包括, [] 後面個 + 就代表一個或者以上附合要求既字元, 而 壓力:[^v]+ 夾埋一齊就解作 壓力: 以後, 一個或似上既任何字元, 直到 v 就停止。

腦功仔 on 2008-09-01 14:47

你的回應






Your response: