[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
3. 取一個 script 名稱,像本例中是取 Open selected Google search results,
打上簡短的敘述,再輸入如下的程式碼:
{
// 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…
編輯後的畫面如下:
4. 按下 Autonrun 的按鈕,並輸入 google.com,
好讓我們的 script 可以在所有的 google.com 頁面出現~
5. 按下 Back 按鈕回到主畫面,現在 script 已經建立完成了~
6. 接下來只要到 Google 搜尋隨便一個關鍵字,在結果頁面上就會出現 Open selected results 的按鈕~
點下這個按鈕就會自動把該頁選取的搜尋結果都開啟囉~
也可以按 Select all 或 Unselect all 來全選/取消全選~
有興趣的人可以試試看~ 🙂