解除e等公務園數位學習網站的學習監控

最近被e等公務園網站強迫每個人都要在線上關注學習的課程煩到,雖然也知道這個規定立意良善,但對我來說被規定要去學習的某門課程太簡單不適合我,也不太適合我習慣的學習方式,總之每個人都有自己的理由,如此一來立意良善的設定就變成強迫了。

有煩惱就要處理,稍微解析了一下網站大致上的框架後,開工。

關閉e等公務園的視窗脫焦監控

基本上只要你這個課程的瀏覽器,一旦失去焦點(例如:開新TAB、視窗縮小、視窗重疊覆蓋),都會觸發VisibilityChange,因此我們的目標就是將這個事件卸下。由於網站的javascript將這個事件委派給一個匿名函式,所以我們沒有辦法透過removeEventListener(),因此只能夠過F12 開發者工具移除比較快。

  1. 開啟學習視窗進入到你要學習的課程,並且開始播放影片。

  2. 在這個視窗下按F12啟動開發者工具

  3. 元素標籤區塊中尋找程式碼,找到<div id="content" ...的字樣,將游標焦點移動至此,點選旁邊的事件接聽程式,找到visibilitychange事件,點選移除按鈕。

如此一來就可以把瀏覽器失焦的監聽事件移除了。

關閉e等公務園的視窗閒置監控

這個問題特別適用於超長視訊課程的狀況,例如有些課程一次高達兩個小時,這種閒置監控在e等公務園被稱為學習路徑警告視窗,基本上就是透過一個名為co_alter_minute參數來控制,每25分鐘(co_alter_minute * 60 * 1000)會叫你起來點擊一個確認視窗,視窗內的用語如下:

閱讀閒置提醒,請點擊確定,未回應將於OO秒後自動登出。

這種情況下有千萬種解法,我的思路是直接切入到他定義的函式進行匿名函式覆寫破壞:

  1. 開啟學習視窗進入到你要學習的課程,並且開始播放影片。

  2. 在這個視窗下按F12啟動開發者工具

  3. 主控台標籤區塊中,找到top下拉方塊,選取到pathtree (pathtree.php)字樣。

  1. 移動到下方命令提示列視窗,在>處輸入下列文字後,按下Enter執行。
clearTimeout(moj_time_obj);
moj_warning_start = function(){};
moj_warning_dialog = function(){};

透過上面的程式碼,基本上就已經破壞掉這個網站不斷輪詢閒置函式的結構啦!祝大家上課學習愉快。這些作法是為了方便自己的學習曲線、學習手段需求,不是為了要展現你可以破解的技術。說穿了你破解後,人家前後端工程師改一下程式碼,這些手法就沒效了。

如果手法失效不要寫信來問我,我沒有那種閒工夫去看這種網站的原始碼,除非下次有遇到需求我才有可能回來更新。

相關連結

eLearn eLearning OnlineVedio OnlineStream LearningDetection TaiwanGovernment