Re: [問題] 百度雲的wap網頁版失效了?! (修)

看板Free_box作者 (QQ)時間10年前 (2015/11/07 01:00), 10年前編輯推噓4(409)
留言13則, 5人參與, 最新討論串3/3 (看更多)
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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.109.58 ※ 文章網址: https://www.ptt.cc/bbs/Free_box/M.1446829229.A.88B.html

11/07 07:22, , 1F
今天發現Javascript Switcher失效,改用這個可以
11/07 07:22, 1F

11/07 09:03, , 2F
switcher不行,用之前m大那篇介紹的ublock還是有效
11/07 09:03, 2F

11/07 12:49, , 3F
感謝~
11/07 12:49, 3F

11/07 20:14, , 4F
你講的這個我貼的那個的作者已經講過啦 XD
11/07 20:14, 4F

11/07 20:18, , 5F
還有嚴格來說不是tempermonkey能不能做,而是那個作者要
11/07 20:18, 5F

11/07 20:18, , 6F
不要改成可以那樣的方式,畢竟你寫的東西都可以達成了
11/07 20:18, 6F
他沒辦法用我的方式,因為他不能改自己的 manifest 我稍微看了一下,要讓 tempermonkey 解決 timing 問題應該滿麻煩的 至少我不會想花時間研究送 patch XD

11/08 01:54, , 7F
ublock的方式好像也失效了,這篇可以,謝謝
11/08 01:54, 7F

11/08 01:58, , 8F
咦,好像又可以,不必多裝上面的套件,抱歉我太衝動了
11/08 01:58, 8F

11/08 01:58, , 9F
今晚百度怪怪的
11/08 01:58, 9F

11/08 04:06, , 10F
我剛用Javascript Switcher,還是有成功耶
11/08 04:06, 10F

11/08 04:09, , 11F
不知道耶,我今晚用百度都怪怪,不好意思哦
11/08 04:09, 11F

11/08 21:34, , 12F
還有你的套件只要沒有丟上 chrome web store 就會天天都
11/08 21:34, 12F

11/08 21:34, , 13F
被 chrome 強制關掉XD
11/08 21:34, 13F
嗯,我忘記 Google 改政策了 解法: 改附檔名成 zip 解壓縮,在 chrome://extensions 打開開發者模式 然後 "載入未封裝擴充功能" 選擇解壓縮的資料夾。 我不想為了這個付五塊美金給 Google,所以只能這樣囉XD 不愧是新時代的 IE,越來越覺得我需要認真把自己轉移到 Firefox 去了zz ※ 編輯: albb0920 (114.32.109.58), 11/09/2015 03:21:13
文章代碼(AID): #1MFDojYB (Free_box)
文章代碼(AID): #1MFDojYB (Free_box)