百度雲的wap網頁版失效了?! (修) - 免空

Linda avatar
By Linda
at 2015-11-07T01:00

Table of Contents

Chrome 目前無法用 userscript 實作,原因下述。

總之包了一個 Chrome 擴充套件,有需要可以抓下來後拖進 chrome://extensions 安裝
https://drive.google.com/file/d/0B2ReFSiH3v7FQUN1aUo3UzZWOHc/

下面解釋為什麼在 chrome 用 userscript 做不出來,有興趣可以聽我 murmur

Chrome 的擴充套件其實可以看成 userscript 的加強版,
對瀏覽器控制的自由度不是能跟 Firefox 比的
所以 greasemonkey 能做的事,tempermonkey 不一定能做

前面有人講了,百度判定 PC 的 js 是 id="platform" 這支 script,
如果我們要繞過去,有兩個方法
1. 阻止這個 script 被執行
2. 在執行前先改掉 navigator.platform,騙過這個 script

第一個方法在 firefox 可以用 onbeforescriptexecute 這個事件處理,幾行就做完了
Chrome 沒有這個事件,沒有可以替代的事件,結案

第二個方法:
這個需要插入的 code 比判定程式更早跑,
麻煩的是判定程式是 inline JS,排在他前面的也都是 inline JS,
在跑到他時完全不用等外部資源載入
而瀏覽器並不保證由 js 動態加入的 script tag 幾時會執行

Tempermonkey 的 @run-at document-start 並不是真正的 document-start
實際測試,跑到你的時候頁面已經有很多部分載入進來,那個 inline 的 JS 也跑完了
這個原因在,雖然 tempermonkey 對頁面而言是在 document-start 跑
他要執行 script 的時候,會用非同步的方式跟背景抓,這時就可能被其他 script 超前
參考: https://github.com/derjanb/tampermonkey/issues/211

以上是為何 Tempermonkey 不能做到這件事的理由

我在寫 chrome 外掛,弄了老半天弄不出來
結果我必須要插 inline JS 才有辦法比百度的 code 早跑,
寫 src = chrome.extension.getURL() 就是比檢查程式慢
照理說 document-start 的時候,整個 DOM Tree 是空的,他應該要先跑我才對
但好像他會因為我是用 js 插入的 script tag,不寫成 inline 就是不行

※ 引述《bestpika (飛影‧忌子)》之銘言:
: 老實說那不是正規的解決辦法
: 正確的做法應該是使用 UserScript 來做
: 去看原始碼會看到有一段是這樣開頭的
: <script id="platform"... 然後裡面有個 isPC=false
: 好,這裡就是關鍵
: 我們要想辦法讓這個 isPC 保持在 false
: 所以我們可以直接去用這個
: https://greasyfork.org/zh-TW/scripts/13434
: (那你前面講那串是講心酸的喔)
: 就這樣 XD

--
Tags: 免空

All Comments

Anthony avatar
By Anthony
at 2015-11-09T21:57
今天發現Javascript Switcher失效,改用這個可以
Olga avatar
By Olga
at 2015-11-09T22:57
switcher不行,用之前m大那篇介紹的ublock還是有效
Puput avatar
By Puput
at 2015-11-10T14:49
感謝~
Charlie avatar
By Charlie
at 2015-11-13T18:19
你講的這個我貼的那個的作者已經講過啦 XD
Lydia avatar
By Lydia
at 2015-11-18T17:46
還有嚴格來說不是tempermonkey能不能做,而是那個作者要
不要改成可以那樣的方式,畢竟你寫的東西都可以達成了
Tracy avatar
By Tracy
at 2015-11-23T16:15
ublock的方式好像也失效了,這篇可以,謝謝
Thomas avatar
By Thomas
at 2015-11-24T21:21
咦,好像又可以,不必多裝上面的套件,抱歉我太衝動了
今晚百度怪怪的
Selena avatar
By Selena
at 2015-11-29T18:13
我剛用Javascript Switcher,還是有成功耶
Lucy avatar
By Lucy
at 2015-12-02T16:45
不知道耶,我今晚用百度都怪怪,不好意思哦
Adele avatar
By Adele
at 2015-12-03T16:41
還有你的套件只要沒有丟上 chrome web store 就會天天都
被 chrome 強制關掉XD

uploadable 下載失敗

Rebecca avatar
By Rebecca
at 2015-11-06T21:06
想請問各位大大, 我昨天跟今天使用uploadable下載檔案, 下載幾秒鐘就斷線了, 使用白馬下載器, 也是一開始可以, 過幾秒鐘就無法連線, 請問有人最近也是這樣嗎atat? 謝謝! - ...

最近迅雷離線的速度

Adele avatar
By Adele
at 2015-11-06T19:46
個人是使用迅雷VIP離線+IDM,但是最近感覺速度很慢...而且還會失去資料連線 過去不管任何種子都能跑到滿速70、80M左右 觀察了一陣子好像白天晚上都特別慢,半夜任務放著讓是有跑比較快= = 請問有使用迅雷的朋友們對於最近的速度有沒有感覺變很慢呢? - ...

迅雷即將取消VIP6升級的鑽石會員特權

Sandy avatar
By Sandy
at 2015-11-06T19:31
剛收到這封信 迅雷鑽石會員業務將有新調整 對於從白金vip6、vip7升級而來的鑽石會員,不久之後,將換成帶榮譽鑽石標識的白金會 員。 以後所有新增的白金vip6、7,都將不會再享有子帳號特權。 在您目前的白金會員有效期內,原有的子帳號特權將一直保留;若您的會員即將過期,則 在11月30日之前續費白金 ...

關於AWS的一年免費使用之帳號問題

Queena avatar
By Queena
at 2015-11-06T12:17
因為學校作業需求使用Amazon Web Service 但是過了幾個月,舊的帳號沒在使用了 不過想到流量的問題 每個月給予的限制,超過可能會斟酌收費 那這樣舊的帳號要怎麼處置呢? 因為免費也才一年 如果放著不管過了一年是否就自動扣款? 有沒有人有經驗的呢? 謝謝! - ...

Mega部分連結偵測不到

Frederic avatar
By Frederic
at 2015-11-06T03:47
原本昨天還好好的,很多Mega都能下載 今天忽然一堆昨天原本偵測到的,現在都偵測不到 顯示下載錯誤,有人知道為什麼嗎?謝謝 - ...