[Chrome extension] 利用 Ninja Script 一次開啟 Google 搜尋的所有結果

[Chrome extension] 利用 Ninja Script 一次開啟 Google 搜尋的所有結果

最常使用的搜尋引擎就是 Google 了,

而最近也發現,蠻常見的一個動作就是搜尋某個關鍵字後,

會把前面幾頁的幾乎所有搜尋結果,都點來看看~

例如,在查新店有哪幾間好的小兒科的時候,

就需要把各網友的評論都打開來瞧瞧~

 

有時候會想,如果有一個按鈕可以直接把搜尋的結果全部打開,那應該是蠻方便的~

這幾天正在考慮自己做一個 Chrome extension,

不過又覺得應該有人做過,所以上網搜尋了一下,

還沒找到適合的,不過卻意外看到了一個有趣的 Chrome extension 叫 Ninja Script

這個擴充功能可以讓使用者自訂要在網頁上執行的 javascript~

真的是很不錯的功能,而且…正好可以應用在這次的需求上面呢!

我們只要寫一段 javascript,讓他把 Google 搜尋的結果連結都找出來並開啟,就 OK 了!

而且這個擴充功能很好用的一點是,支援 jQuery 喔!

 

1. 首先要先去 Chrome Web Store 安裝好 Ninja Script

 

2. 點下 Ninja Script 在 Chrome 擴充功能的圖示,選擇 New 新增一個 script

ninja_new

 

3.  取一個 script 名稱,像本例中是取 Open selected Google search results,

打上簡短的敘述,再輸入如下的程式碼:

function jsWaitGoogleSearchFinish()
{
    // Only do this once
    if ($(“#btnOpenSelectedResults”).length <= 0)
    {
        // Prepare the function for open selected results
        var sFuncOpenSelectedResults = escape((function()
        {
            // Get all result records
            var arrayResult = document.getElementsByClassName(“r”);
           
            for (var i = 0; i < arrayResult.length; i++)
            {
                // Open the link in new window
                var arrayTagInput = arrayResult[i].getElementsByTagName(“input”);
                var arrayTagA = arrayResult[i].getElementsByTagName(“a”);
                if (arrayTagInput.length > 0 && arrayTagInput[0].checked &&
                    arrayTagA.length > 0 && arrayTagA[0].href != null)
                {
                    window.open(arrayTagA[0].href);
                }
            }
        }).toString());
       
        // Prepare the function for select/unselect all results
        var sFuncSelectAllResults = escape((function(bSelect)
        {
            // Get all result records
            var arrayResult = document.getElementsByClassName(“r”);
           
            for (var i = 0; i < arrayResult.length; i++)
            {
                var arrayTagInput = arrayResult[i].getElementsByTagName(“input”);
                var arrayTagA = arrayResult[i].getElementsByTagName(“a”);
                if (arrayTagInput.length > 0)
                {
                    arrayTagInput[0].checked = bSelect;
                }
            }
        }).toString());
       
        // Add a “Open all resultss” button
        $(“#res”).prepend(
            “<button id=btnOpenSelectedResults onclick=javascript:eval(‘(‘ +unescape(‘” + sFuncOpenSelectedResults + “‘) + ‘)’)();>Open selected results</button> “ +
            “<button id=btnSelectAllResults onclick=javascript:eval(‘(‘ +unescape(‘” + sFuncSelectAllResults + “‘) + ‘)’)(true);>Select all</button> “ +
            “<button id=btnUnselectAllResults onclick=javascript:eval(‘(‘ +unescape(‘” + sFuncSelectAllResults + “‘) + ‘)’)(false);>Unselect all</button> “
        );
       
        // Add a check box to each search result
        $(“.r:has(a)”).prepend(“<input type=checkbox checked/> “);  
    }
}

$(document).ready(function() {
   
    // Check if is Google search result page
    if ($(“#res”).length > 0)
    {
        // Wait for a moment, so that search results are all displayed
        setTimeout(“jsWaitGoogleSearchFinish()”, 0);
    }
});

 

至於上面的程式碼在做什麼呢?

已經加了註解,應該還算容易理解~懶得看的人就直接複製貼上吧 😛

比較要注意的是在 sFunc* 裡面我們不能用到 jQuery 的寫法,

因為在 Google search 頁面上並沒有 jQuery…

 

編輯後的畫面如下:

ninja_edit         

 

4. 按下 Autonrun 的按鈕,並輸入 google.com,

好讓我們的 script 可以在所有的 google.com 頁面出現~

ninja_autonrun_2  

 

5. 按下 Back 按鈕回到主畫面,現在 script 已經建立完成了~

ninja_main    

 

6. 接下來只要到 Google 搜尋隨便一個關鍵字,在結果頁面上就會出現 Open selected results 的按鈕~

點下這個按鈕就會自動把該頁選取的搜尋結果都開啟囉~

也可以按 Select all 或 Unselect all 來全選/取消全選~

ninja_open_all_results    

有興趣的人可以試試看~ 🙂

(本頁面已被瀏覽過 110 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料