Plugin眾多也是讓jQuery威力無窮的重要因素,不過每回遇到需求,尋找現成的Plugin卻很花功夫。

jQuery官網有個Plugin大總匯: http://plugins.jquery.com/,蒐集了很多的Plugin,分門別類,並逐一列出網站、文件、Demo等連結,資訊非常豐富。它甚至也提供了使用者評價(Rating)的機制,對我來說很受用。尤其當同一需求有很多選擇時,往往讓人無所適從,此時看看別人怎麼說,拿香跟著拜準沒錯!

不過Plugin網站在設計時,並沒有把Rating直接放在分類清單上,所以得一一點選開啟詳細檢視才能得知評價。如果直接在清單上顯示評價,就可以優先考慮票數多評價高者,勢必可大量節省翻找查看的時間;但網站是別人寫的,寫信請開發者發發佛心修改一下嗎? 當然也是辦法,但天助自助者,謝謝老天爺,我們有Trixie!!

以下的Trixie Script借用了jQuery的神奇力量(因為是jQuery網站的網頁,當然有Include jquery.js),簡單幾行就把Rating提取到清單頁上了,有需要的朋友就挾去配吧!

// ==UserScript==
// @name          Show jQuery Plugin Rating
// @namespace     http://www.darkthread.net
// @description      Show jQuery Plugin Rating
// @include       http://plugins.jquery.com/project/Plugins/category/*
// ==/UserScript==
(function()
{
    $("#project-overview H2").each(function() {
        var h2 = $(this);
        var a = h2.find("A");
        $.get(a.attr("href"), null, function(data) {
            var newData = data.replace(/star avg on/g, "");
            var stars = ((data.length - newData.length) / 11);
            var p1 = data.indexOf("rating-num-votes-");
            var votes = 0;
            if (p1 > 0)
            {
                var p1 = data.indexOf("\"", p1 + 16); //"
                var p2 = data.indexOf("<", p1 + 1);
                var votes = data.substring(p1 + 2, p2);
            }
            
            h2.append("<span style='color:red;font-size:9pt;'>&nbsp;&nbsp;Rating:"
+ stars + "&nbsp;("+votes+" Votes)</span>");
            
        });
    });
})();


Comments

# by wangaguo

"有為的中年人" 給你加油! 您在許多技術領預的研究真是不少, google時也總是受惠, 謝謝您.

# by ken

請問有辦法直接使用userscript引入jquery.js使用嗎?

# by Jeffrey

to ken, 你是指網頁本身沒有 jQuery,但寫 userscript 時想引用 jQuery 嗎? 可參考這篇:http://blog.darkthread.net/post-2012-05-05-greasemonkey-load-jquery.aspx

Post a comment