There are 7 previous versions of this script.
// ==UserScript==
// @name Google Time & Language Select
// @namespace Yamamaya
// @description You can select time option and language.
// @include http://www.google.*/
// @include http://www.google.*/search*
// @include http://www.google.*/webhp?*
// @version 1.0.8
// ==/UserScript==
(function(){
var google = {
init: function(){
var self = this;
$X('.//input[@name="btnG"]').forEach(function(item){
self.time(item);
if(/^http\:\/\/www\.google.(?:[a-z]{2}\.)?[a-z]{2,3}\/search\?/.test(window.location.href))
self.language(item);
});
this.remove();
this.submit();
},
time: function(item){
var time = document.createElement("select");
time.setAttribute("name","as_qdr");
time.setAttribute("style","margin: 0px 5px 0px 3px");
time.innerHTML = "<option selected='' value='all'>指定なし</option>"
+ "<option value='d'>24時間以内</option>"
+ "<option value='w'>1週間以内</option><option value='m'>1か月以内</option>"
+ "<option value='y'>1年以内</option>";
item.parentNode.insertBefore(time,item);
},
language: function(item){
var contents;
var language = {
"英語": "lang_en",
"スペイン語": "lang_es",
"フランス語": "lang_fr",
"イタリア語": "lang_it",
"ドイツ語": "lang_de",
"中国語 簡体": "lang_zh-CN",
"中国語 繁体": "lang_zh-TW",
"韓国語": "lang_ko",
"日本語": "lang_ja"
};
var langBox = document.createElement("select");
langBox.setAttribute("style","margin: 0px 5px 0px 2px");
contents += "<option>言語選択</option>"
for(var i in language){
contents += "<div><input type='radio' id='lr' value="+language[i]+" name='lr'/><label for='lr'>"+i+"</label></div>"
};
contents += "<div><input type='radio' value='' name='lr' id='all'/><label for='all'>すべての言語</label></div>";
langBox.innerHTML = contents;
item.parentNode.insertBefore(langBox,item);
},
remove: function(){
$X('.//select[@name="as_qdr"][2]').forEach(function(item){
item.parentNode.removeChild(item);
});
},
submit: function(){
var path = ['.//node()[@value="all"]',
'.//node()[@value="d"]',
'.//node()[@value="w"]',
'.//node()[@value="m"]',
'.//node()[@value="y"]',
'.//node()[@name="lr"]'
].join(" | ");
$X(path).forEach(function(button){
button.addEventListener("click", Gsubmit, false);
});
function Gsubmit(){
var gform = $XS(".//form[@name='f'] | .//form[@name='gs']");
gform.submit();
};
}
};
google.init();
function $X(exp, ctx){
var xp = (ctx && ctx.ownerDocument || document).evaluate(exp, ctx || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null),
r = [];
for (var i = 0;i < xp.snapshotLength;++i) r.push(xp.snapshotItem(i));
return r;
};
function $XS(query,node){
return document.evaluate(
query,
(node||document),
null,
XPathResult.FIRST_ORDERED_NODE_TYPE,
null).singleNodeValue;
};
})();
