Help:定位损坏脚本
如果您在使用本地小工具或使用者腳本時遇到問題,那麼這些問題通常是由損壞的JavaScript程式碼(編寫小工具所使用的程式語言)或其他程式碼的未聲明依賴關係所造成。
要找尋有問題需要修復的程式碼和位置,您將需要使用網頁瀏覽器的開發人員工具。 結合該工具和特殊的URL來使用,將能幫助您找出損壞的腳本。
如何使用
確保您有最新的配置
首先,請確保您的瀏覽器是最新版本。因為安全原因,舊版瀏覽器不支持MediaWiki的功能和某些腳本。
然後,清除頁面的緩存,以強制頁面根據原始碼來重新顯示或重新啟動腳本。
這兩點能解決大多數的問題。
如果您在網頁瀏覽器上安裝了「NoScript」之類的工具或廣告攔截器,請確保已為wikipedia.org、wikimedia.org、mediawiki.org和wikidata.org啟用了腳本。
測試您是否遇到與使用者腳本或小工具有關的問題
要測試您的問題是否與使用者腳本或小工具相關,您可以嘗試暫時停用所有維基上的腳本和樣式表。
要這麼做,在您遇到問題的頁面網址(URL)加入 safemode 參數(?safemode=1
)。
例如:
https://www.mediawiki.org/wiki/Help:Locating_broken_scripts?safemode=1
如果 URL 已經包含 ?
,則附加 &safemode=1
。
例如:
https://www.mediawiki.org/w/index.php?title=Help:Locating_broken_scripts&safemode=1
如果您使用安全模式進行測試且瀏覽器是最新版,卻仍然在頁面上遇到問題,請與 MediaWiki 的開發人員聯繫(如何報告錯誤)。 如果使用安全模式就不再有問題,則表示使用者腳本或小工具存在問題。 您需要找出問題所在。
測試您是否遇到與瀏覽器擴充功能相關的問題
某些問題可能因為維基百科和某些瀏覽器擴充功能間相互影響造成的結果。 最簡單的測試方法是,在停用所有擴充功能的情況下嘗試相同的操作。要實現此操作的最簡單方法是,在google chrome和firefox瀏覽器中使用「匿名瀏覽」或「訪客模式」,其在預設情況下是停用所有擴充功能的。 如果該問題在匿名瀏覽中消失了,請嘗試逐個暫時停用擴充功能來縮小範圍,直到找到是「罪魁禍首」的擴充功能。
如果您發現問題確實與瀏覽器擴充功能有關,請考慮將其報告給該擴充功能的開發人員。 如果您决定在 Wikimedia wiki 的一个交流论坛上进行报告,请在您的报告中提及您的浏览器扩展。
找出問題
以下連結說明了如何在這些瀏覽器中進行此操作:
在打開它們之後,請在您看到問題的頁面網址(URL)後附加 ?debug=true
。
例如:
https://www.mediawiki.org/wiki/Help:Locating_broken_scripts?debug=true
如果 URL 已經包含 ?
,則附加 &debug=true
。
例如:
https://www.mediawiki.org/w/index.php?title=Help:Locating_broken_scripts&debug=true
如果JavaScript有問題,則應該會在開發人員工具的「控制台」中印出錯誤。
確保啟用了「JavaScript」或「JS」,若可能則停用其他輸出,讓輸出不會變得太吵雜:
單擊右側的檔案名稱。 這將打開「Debugger」視圖。 右窗格將顯示需要修復的代碼。 ,左窗格將顯示需要修復的檔案(您可能需要滾動列表以找出被醒目標示的唯一檔案)。 右鍵單擊該檔案,在新頁籤中打開需要修復的檔案:
根據檔案的「載入」方式,檔案的確切URL可能不會很明顯,因此您可能必須滾動到檔案的頂部才能檢視其名稱。
此名稱可能只是一個註解(類似於// Title
)。
需要修復的問題可能在該Wiki上的本地MediaWiki:Common.js
檔案中、在您的個人檔案中(例如User:MyUserName/common.js
)(或在User:MyUserName/
下您擁有的其他.js檔案)、或在該Wiki上其中一個可用的小工具的程式碼中、或該Wiki上MediaWiki:Gadgets-definition
中定義的小工具代碼依賴項中。
有關更多技術資訊,您可以查看如何切換除錯模式。
修復問題
您將能找到大多數的腳本,在Meta的m:Special:MyPage/global.js
、本地的Special:MyPage/common.js
、Special:MyPage/vector.js
(如果您使用不同的外觀,則在類似名稱的頁面中,例如如果您使用MonoBook外觀,則是Special:MyPage/monobook.js
)、任何在本地Special:Preferences#mw-prefsection-gadgets
中選中的項目。
腳本的問題可能由不同的原因造成,我們建議您與了解JavaScript的人聯繫來幫助您。(如果您具有JavaScript的基本技術知識,請參閱T164242以獲取提示和其他資訊的連結。)
同時,您可以停用該腳本。
如果發現損壞的腳本是小工具,請在您的偏好設定中停用該小工具。
如果損壞的腳本在您的.js頁面上,請透過註釋腳本來停用它。在相關程式碼的開頭添加/*
,並在結尾添加*/
。
您也可以透過清空您.js頁面中有關該腳本的每一行或是在每一行前面使用//
註釋,來停用該腳本。
其他定位損壞腳本的方法
- 注意您在帳戶上使用的小工具和腳本
- 停用帳戶上所有的腳本和小工具
- 重新啟用小工具
- 清除您的快取
- 測試您是否仍遇到問題:
- 如果沒有,前往步驟3
- 如果有,修復該腳本並回到步驟3以處理其他可能損壞的腳本
完全無關的小工具也可能破壞最奇怪的東西。 要縮小範圍,請在偏好設定中小工具列表中關閉一部分的小工具,然後查看是否有幫助。 然後,如果這樣不起作用,請嘗試關閉另一部分的小工具。 最終,您將找到問題所在小工具的部分。 然後逐一關閉該部分中的小工具。 在執行任何操作之前,請對整個小工具偏好設定頁面進行截圖。 這樣您才能改回自己喜好的設定。 Firefox具有內建的螢幕截圖工具,可讓您擷取整個頁面,包括未在螢幕上顯示的部分頁面。
参阅
- ResourceLoader/Architecture#Disable on a single page
- wikitech:Client errors – 用于记录 JavaScript 错误的 Wikimedia 基础设施