- // ==UserScript==
- // @name Fix Google Search Options
- // @description Google検索で検索オプションのメニューをサイドバーへ移して表示します
- // @namespace https://pcvogel.sarakura.net/
- // @include http://*.google.*/search?*
- // @include https://*.google.*/search?*
- // @include http://*.google.*/images?*
- // @include https://*.google.*/images?*
- // @exclude https://*.google.*/*tbm=shop*
- // @exclude https://*.google.*/*tbm=bks*
- // @exclude https://*.google.*/*tbm=app*
- // @exclude https://*.google.*/*tbm=lcl*
- // @exclude https://*.google.*/preferences?*
- // @grant GM_addStyle
- // @version 1.4.6
- // @license MIT
- // ==/UserScript==
-
- (function() {
-
- var CSS =
- '#center_col{ margin-left:20px !important; }';
- GM_addStyle(CSS);
-
-
- //lr:検索範囲
- function get_form_lr(){
-
- var list = ['lang_ja', 'lang_en',''];
- var strlist = ['日本語のページ', '英語のページ','ウェブ全体'];
-
- var baseurl = document.location.href.replace(/lr=([^&]+)&?/, '');
- var current = (RegExp.$1)? RegExp.$1 : '';
- var generateOption = function(v) {
- var i;
- var valuestr;
- for( i = 0 ; i < list.length ; i++ ){
- if( v == list[i] ){
- valuestr = strlist[i];
- }
- }
- return '<option value="' + v + '"'
- + ((v == current)? ' selected="1"' : '') + '>' + valuestr + '</option>';
- };
- var opts = list.map(generateOption).join("\n");
-
- return '<select id="get_form_lr" style="width:110px" size="3" name="lr2" >' + opts + '</select>';
-
- }
-
-
-
- //検索期間
- function get_form_qdr(){
-
- var list = ['', 'qdr%3Ah','qdr%3Ad','qdr%3Aw','qdr%3Am','qdr%3Am3','qdr%3Am6','qdr%3Ay','qdr%3Ay3',];
- var strlist = ['期間指定なし','1 時間以内','24 時間以内','1 週間以内','1 か月以内','3 か月以内','6 か月以内','1 年以内','3 年以内'];
-
- var baseurl = document.location.href.replace(/tbs=([^&]+)&?/, '');
- var currenttbs = (RegExp.$1)? RegExp.$1 : '';
-
- currenttbs = currenttbs.replace(/\:/, '%3A');
- var notqdr_tbs = currenttbs.replace(/,?(qdr%3A[^&^,]+)[&,]?/, '');
-
- var currentqdr;
- if( notqdr_tbs == currenttbs ){
- currentqdr = '';
- }else{
- currentqdr = RegExp.$1;
- }
- currentqdr = currentqdr.replace(/%2C.+/, '');
- currentqdr = currentqdr.replace(/,.+/, '');
-
- var generateOption = function(v) {
- var i;
- var valuestr;
- for( i = 0 ; i < list.length ; i++ ){
- if( v == list[i] ){
- valuestr = strlist[i];
- }
- }
- var newtbs;
- if( currenttbs == '' ){
- if( v == '' ){
- newtbs = '';
- }else{
- newtbs = 'tbs=' + v;
- }
- }else{
- if( currentqdr == '' ){
- if( v == '' ){
- newtbs = 'tbs=' + currenttbs;
- }else{
- newtbs = 'tbs=' + currenttbs + ',' + v;
- }
- }else{
- if( v == '' ){
- newtbs = 'tbs=' + notqdr_tbs;
- }else{
- newtbs = 'tbs=' + notqdr_tbs + ',' + v;
- }
- }
- }
- newtbs = newtbs.replace( /tbs=,/ , 'tbs=');
- return '<option value="' + newtbs
- + ((v == currentqdr)? '" selected="1"' : '"') + '>' + valuestr + '</option>';
- };
- var opts = list.map(generateOption).join("\n");
-
- return '<select id="get_form_qdr" style="width:110px" size="9" name="qdr2">' + opts + '</select>';
-
- }
-
-
-
- function get_form_iXX( regstr , argstr , list , strlist ){
-
- var baseurl = document.location.href.replace(/tbs=([^&]+)&?/, '');
- var currenttbs = (RegExp.$1)? RegExp.$1 : '';
-
- currenttbs = currenttbs.replace(/\:/g, '%3A');
- currenttbs = currenttbs.replace(/,,/, ',');
- var notiXX_tbs = currenttbs.replace( regstr , '' );
-
- var currentiXX;
- if( notiXX_tbs == currenttbs ){
- currentiXX = '';
- }else{
- currentiXX = RegExp.$1;
- }
- currentiXX = currentiXX.replace(/%2C.+/, '');
- currentiXX = currentiXX.replace(/,.+/, '');
-
- var generateOption = function(v) {
- var i;
- var valuestr;
- for( i = 0 ; i < list.length ; i++ ){
- if( v == list[i] ){
- valuestr = strlist[i];
- }
- }
- var newtbs;
- if( currenttbs == '' ){
- if( v == '' ){
- newtbs = '';
- }else{
- newtbs = 'tbs=' + v;
- }
- }else{
- if( currentiXX == '' ){
- if( v == '' ){
- newtbs = 'tbs=' + currenttbs;
- }else{
- newtbs = 'tbs=' + currenttbs + ',' + v;
- }
- }else{
- if( v == '' ){
- newtbs = 'tbs=' + notiXX_tbs;
- }else{
- newtbs = 'tbs=' + notiXX_tbs + ',' + v;
- }
- }
- }
- newtbs = newtbs.replace( /tbs=,/ , 'tbs=');
- return '<option value="' + newtbs
- + ((v == currentiXX)? '" selected="1"' : '"') + '>' + valuestr + '</option>';
- };
- var opts = list.map(generateOption).join("\n");
-
- return '<select class="D7EDBF8C40" style="width:110px" size="' + list.length + '" name="' + argstr + '2" >' + opts + '</select>';
-
- }
-
- function get_form_imagesearch( type ){
- var str = "" , bstr;
- if( type == 1 ){
- bstr = "<br><br>";
- }else{
- bstr = "<br>";
- }
-
- str = "<div style=\"position:fixed;margin-left:0px; margin-top:60px; display\"><form>" +
- get_form_iXX( /(isz%3A[^&^,]+)[&]?/ , 'isz' , ['', 'isz%3Al','isz%3Am','isz%3Ai'],['すべてのサイズ','大','中','アイコンサイズ']) +
- bstr +
- get_form_iXX(/(ic%3A[^&^,]+)[&]?/ , 'ic' , ['', 'ic%3Acolor','ic%3Agray','ic%3Atrans'],['すべての色','フルカラー','白黒','透明']) +
- bstr +
- get_form_iXX(/(itp%3A[^&^,]+)[&]?/ , 'itp' , ['', 'itp%3Aclipart','itp%3Alineart','itp%3Aanimated'],['すべての種類','クリップアート','線画','GIF']) +
- bstr +
- get_form_iXX(/(qdr%3A[^&^,]+)[&]?/ , 'qdr' , ['', 'qdr%3Ad','qdr%3Aw','qdr%3Am','qdr%3Ay',],['期間指定なし','24 時間以内','1 週間以内','1 か月以内','1 年以内']) +
- bstr +
- get_form_iXX(/(il%3A[^&^,]+)[&]?/ , 'qdr' , ['','il%3Acl','il%3Aol' ],['すべて','クリエイティブ・コモンズ ライセンス','商用およびその他のライセンス']) +
- "</form></div>";
- return str;
- }
-
-
- var e;
- var style;
-
- var targetElement , newDiv , parentDiv;
- if( document.URL.indexOf("tbm=") == -1 ){
-
- targetElement = document.getElementById('center_col');
- newDiv = document.createElement("div");
- newDiv.style.position = "fixed";
- newDiv.style.left = "30px";
- newDiv.style.top = "200px";
- newDiv.style.zIndex = 90000;
- newDiv.innerHTML = "<form>" + get_form_lr() + "<br><br>" + get_form_qdr() + "</form>";
- parentDiv =targetElement.parentNode;
- parentDiv.insertBefore(newDiv, parentDiv.firstChild);
-
- document.getElementById('rcnt').style.paddingLeft = (newDiv.clientWidth+30).toString(10) + "px";
-
- var entryElement;
- entryElement = document.getElementById('get_form_qdr');
- entryElement.addEventListener('change', function() {
- var baseurl = document.location.href.replace(/&+tbs=([^&]+|)(&+|$)/, '&');
- var url = baseurl.replace(/https*:\/\/www\.google\.co\.jp\/search\?/, 'search?');
- url = url + '&' + this.options[ this.selectedIndex ].value;
- location.href = url;
- url = url.replace( /,,/ , ',' );
- url = url.replace( /,$/ , '' );
- });
- entryElement = document.getElementById('get_form_lr');
- entryElement.addEventListener('change', function() {
- var baseurl = document.location.href.replace(/&+lr=([^&]+|)(&+|$)/, '&');
- baseurl = baseurl.replace( /\?lr=.+?&/ , '?' );
- var url = baseurl.replace(/https*:\/\/www\.google\.co\.jp\/search\?/, 'search?');
- url = url + '&lr=' + this.options[ this.selectedIndex ].value;
- location.href = url;
- });
- }
-
- if( document.URL.indexOf("tbm=isch") > 0 ){
-
-
- trustedTypes.createPolicy('default', {
- createHTML: (unsafeValue) => {
- return unsafeValue;
- }
- });
-
- e = document.getElementById('islrg');
- e = document.getElementById('kO001e');
-
- newDiv = document.createElement("div");
- newDiv.style.position = "fixed";
- newDiv.style.left = "30px";
- newDiv.style.top = "200px";
- newDiv.style.zIndex = 90000;
- newDiv.innerHTML = get_form_imagesearch(1);
- e.appendChild(newDiv);
-
- style = document.createElement("style");
- style.setAttribute( "type" , "text/css" );
- style.appendChild( document.createTextNode("") );
- document.getElementsByTagName("head")[0].appendChild(style);
- style.sheet.insertRule(".islrc {padding-left:160px !important; width:90% !important;}" , style.sheet.cssRules.length );
-
-
- e = document.getElementsByClassName('D7EDBF8C40');
- for( var i = 0; i < e.length ; i++ ){
- e[i].addEventListener('click', function() {
- var baseurl = document.location.href.replace(/&+tbs=([^&]+|)(&+|$)/, '&');
- var url = baseurl.replace(/https*:\/\/www.google.co.jp\/search\?/, 'search?');
- url = url + '&' + this.options[ this.selectedIndex ].value;
- url = url.replace( /,,/ , ',' );
- url = url.replace( /,$/ , '' );
- location.href = url;
- });
- }
- return;
- }
-
- })();
-
-
-
-