紀念userscripts.org,

來源:互聯網
上載者:User

紀念userscripts.org,
發現一些Firefox的使用者指令碼不工作和userscripts.org訪問不了有挺長一段日子了,心想是哪裡出了錯也沒特意去查。前幾天有時間檢查指令碼,順便再上久違的userscripts.org看看,卻還是不能訪問,感覺有些蹊蹺,遂在Google上搜尋userscripts.org down,還沒敲完,提示已經出來了,看來這已是影響普遍的問題,和偉大的防火牆沒什麼關係。點進連結一看,大吃一驚。原來userscripts.org自五月初就down了。事前沒有任何通知,開始時還有人猜測是網站受到攻擊或故障,後來短暫可通過8080連接埠訪問,到今天已可認定永遠關閉了。沒有來自網站運營者的正式說明或任何公認的確定的解釋。有意關閉、伺服器故障、空間租期結束……眾猜紛紜。一個曾經活躍了很長時間,在瀏覽器和指令碼愛好者中頗有影響的網站就這樣非正常死亡了。所幸還有好心人建立了一個鏡像網站http://userscripts-mirror.org/,不過只能靜態訪問,搜尋討論修改等功能都關閉。如果要找某個指令碼,只能利用類似Google的網站搜尋功能。

印象中我獲知userscripts.org大約是在09年前後。Firefox五花八門的外掛程式陣營裡的明星GreaseMonkey讓Firefox倡導的自訂互連網的理念不止步於瀏覽器,進入原本是網站開發人員決定的網頁領域。按照自己的想法修正、增強和美化一直以來只能被動接受的網頁,這個新奇的主意令很多網民中的開發人員躍躍欲試,也讓更多普通的Firefox使用者踴躍安裝使用數量快速增長、針對大量網站、功能繁多的指令碼。個人化和自主性需求的滿足似乎一時讓上網變得更加有趣。使用者指令碼的集散地userscripts.org網站也應需而生。當年這個專門用途的網站在我眼裡是個有趣又精緻的地方,在這能發現他人的巧思,僅憑一個指令碼就使熟悉的網站更加友好方便。而當我也開始在上面發布指令碼後,經常去看看每日指令碼下載次數就變得我想有點像股民關注股市,畢竟這是第一次自己寫的程式被互連網那一端成千上萬不認識的人下載使用。

Chrome、Opera隨後也有了各自的XXXMonkey外掛程式,內容指令碼不再是Firefox的專利。漸漸地隨著對指令碼改動的減少,我對它的興趣也淡漠了。網站的改版、瀏覽器和外掛程式的升級都可能使指令碼失效或不再有用,另一方面設計和開發精良的網站,使用者操作友好,內容指令碼的用武之地也減小(除了那些突破網站開發人員本意的限制的功能)。不知不覺我幾個月也未必會上一次userscripts.org。

這時userscripts.org離去了,我驚愕之餘若有所失。有人評論,userscripts.org關閉之前因為未對廣告和惡意指令碼加以限制,已顯頹像,後繼者greasyfork.org維護管理更好。我上去看後卻覺得它的頁面美觀和操作性不如前者。當互連網日益成為普通人生活中密切的一部分,抽象的數字空間也會被附以感情。萬物有生有滅。在新網站不斷湧現被人接受和熟悉之際,一些曾經的老夥伴也已消失,有人將這種現象比作數字黑洞,一旦網站關閉,上面的所有資料,包括成千上萬使用者的活動記錄,就被永遠吞噬。所以已經有人開始“備份”整個互連網,web.archive.org現在已記錄了4350億個曆史頁次,userscripts.org的靜態頁面也可以通過它訪問。

相較於針對特定網站的指令碼,一些通用功能的指令碼是我覺得最有用的。我的最愛就包括在userscripts.org下載的用左右鍵翻頁的指令碼。將它附在末尾以志念。

// ==UserScript==// @name           HotKey Next Page// @namespace      scottxp@126.com// @author         scottxp// @version        1.0// @description    按左右鍵翻頁,可以自己針對網站定製xpath規則// @include        http://*// @include        https://*// Modified by Starrow.// 1. Add the detection of contenteditable div used as textarea in HTML 5.// 2. Remove the reference to unsafeWindow, which is unnecessary and doesn't work since Firefox 30.// ==/UserScript==const nextStrs = ['下一頁','下頁','下一節','下一章','下一篇','後一章','後一篇','»','next','next page','old','older','earlier','下頁','下一頁','後一頁','後一頁','下一則','翻下頁','翻下頁','後頁','後頁','下翻','下一個','下一張','下一幅','Next >'];const lastStrs = ['上一頁','上頁','上一節','上一章','上一篇','前一章','前一篇','«','previous','prev','previous page','new','newer','later','上頁','上一頁','上一則','前一頁','前一頁','翻上頁','翻上頁','前頁','前頁','上翻','上一個','上一張','上一幅','< Prev'];const GeneralXpaths = [["//a[(text()='","')]"],["//input[@type='button' and @value='","']"]];//編輯下面的數組來自訂規則const SpecialXpaths = [{//匹配的urlurls : ["http://www.google.com"],//上一頁節點的xpathlast : "//a[@id='pnprev']",//下一頁節點的xpathnext : "//a[@id='pnnext']"}];const LEFT = 37;const RIGHT = 39;function checkKey(e){if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey )        return ;if(checkTextArea(e.target))return ;var node;if(e.keyCode == LEFT && (node = getNode(LEFT))){click(node);}if(e.keyCode == RIGHT && (node = getNode(RIGHT))){click(node);}}function checkTextArea(node){var name = node.localName.toLowerCase();if (name == 'textarea' || name == 'input' || name == 'select')return true;if(name == 'div' && node.id.toLowerCase().indexOf('textarea')!=-1)return true;//Add new textarea which are div with contenteditable being true.//contenteditable is new in HTML 5 and supported in all major browsers.//In case contenteditable is supported but cannot be read via DOM, use attributes["contenteditable"].value.if (node.contenteditable===true || (node.attributes["contenteditable"] && node.attributes["contenteditable"].value==="true")){return true;}return false;}function click(node){if(node.onclick)node.onclick();if(node.click)node.click();if(node.href)location.href = node.href;}function xpath(query) {return document.evaluate(query, document, null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);}function getNode(keyCode){var node = getNodeByGeneralXpath(keyCode)if (!node)node = getNodeBySpecialXpath(keyCode);return node;}function getNodeByGeneralXpath(keyCode){var strs;if(keyCode == LEFT)strs = lastStrs;else if(keyCode == RIGHT)strs = nextStrs;elsereturn null;var x = GeneralXpaths;for (var i in x){for (var j in strs){var query = x[i][0]+strs[j]+x[i][1];var nodes = xpath(query);if(nodes.snapshotLength > 0)return nodes.snapshotItem(0);}}return null;}function getNodeBySpecialXpath(keyCode){var s = SpecialXpaths;for (var i in s){if(checkXpathUrl(s[i].urls)){if (keyCode == LEFT){return xpath(s[i].last).snapshotItem(0);}else if(keyCode == RIGHT){return xpath(s[i].next).snapshotItem(0);}}}return null;}function checkXpathUrl(urls){for(var i in urls)if(location.href.indexOf(urls[i]) == 0)return true;return false;}if (top.location != self.location)return;document.addEventListener('keydown', checkKey, false);


userscriptsorg被封了?

userscripts.org:8080
 
userscriptsorg開不了一直在載入怎辦?了,幫忙

可能伺服器掛了。經常的事。 查看原帖>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.