Greasy Fork

Greasy Fork is available in English.

Yahoo!Japan Auction「タイトルと商品説明」検索復元script

Yahoo!Japanの検索オプション「タイトルと商品説明」を復活させる

当前为 2014-06-12 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @id             Yahoo!Japan_AuctionSearch
// @name           Yahoo!Japan Auction「タイトルと商品説明」検索復元script
// @version        1.7
// @copyright      Noi & Noisys & NoiSystem & NoiProject
// @license        https://creativecommons.org/licenses/by-nc-sa/3.0/
// @author         noi
// @description    Yahoo!Japanの検索オプション「タイトルと商品説明」を復活させる
// @include        /^https?:\/\/auctions.search.yahoo.co.jp\/search\?*/
// @include        /^https?:\/\/category.auctions.yahoo.co.jp\/list\/*/
// @namespace      https://www.userscripts.org/scripts/show/153206
// @run-at         document-end
// ==/UserScript==
/*=====================================================================================================================
**************************************************************
*************** Caution!  [Yahoo!Japan] Only.*****************
**************************************************************


このスクリプトはヤフオクがかつて表示していた「タイトルと商品説明」を復活させるためのスクリプトです。
「あいまい検索」ボタンも追加しました。

このスクリプトに関して、すべてにおいて自己責任にてご使用下さい。

なお、万が一Yahoo!Japanより公開停止要請があった場合、即刻公開中止いたしますのでご了承下さい。
その場合、ご利用を中止してください。

備忘録:「タイトルと商品説明」で検索すると、URLの引数に「?f=0x4」付く
	ただし、だからといって単純に「?f=0x4」だけ追記しても表示が変わらないので他にもファクターがあると思われる?
	「タイトル」検索に戻す場合は「?f=0x2」
	「あいまい検索」は「?ngram=1」
	http://auctions.search.yahoo.co.jp/search?ei=UTF-8&p=「検索文字列」&auccat=「カテゴリーID」
	http://category.auctions.yahoo.co.jp/list/「カテゴリーID」/

=====================================================================================================================*/
(function(){

	//変数---------------------------------------------------------------------------------------
	//共通
	var nowURL =window.location.href;			//現在のページの完全なURLの取得
	var targetId = document.getElementById('S_Items');		//追加したい場所の要素取得
	var tagName = targetId.getElementsByTagName('ul');		//追加したい場所をさらに特定する
	var hiddenElm = "";					//検索オプションをつけるとhiddenで追加される要素
	//「タイトルと商品説明」
	var addTagText;						//今回追加するHTML文
	var elmTagName = "f";					//追加するタグのname
	var elmTagId = "ni03";					//追加するタグのid
	var elmTagValue1 = "0x4";				//追加するタグのvalue(「タイトルと商品説明」検索)
	var elmTagValue2 = "0x2";				//追加するタグのvalue(通常検索)
	var elmTagText = "タイトルと商品説明";			//追加するタグのテキスト文
	var hiddenTagName = "f";				//検索後何やら追加されるhiddenのname
//	addTagText = '<li><input type="checkbox" name="f" id="ni03" class="cb" value="0x4"><label for="ni03">タイトルと商品説明</label></li>';
	//「あいまい検索」
	var addAimaiText;					//今回追加するHTML文
	var elmAimaiName = "ngram";				//追加するタグのname
	var elmAimaiId = "ni04";				//追加するタグのid
	var elmAimaiValue1 = "1";				//追加するタグのvalue(「タイトルと商品説明」検索)
	var elmAimaiValue2 = "0";				//追加するタグのvalue(通常検索)
	var elmAimaiText = "あいまい検索";			//追加するタグのテキスト文
	var hiddenAimaiName = "ngram";				//検索後何やら追加されるhiddenのname
//	addAimaiText = '<li><input type="checkbox" name="ngram" id="ni04" class="cb" value="1"><label for="ni04">あいまい検索</label></li>';
	document.createElement("aimai_tag");			//「aimai_tag」タグ追加
	var hiddenAimai = document.getElementsByName('ngram');	//検索オプションをつけるとhiddenで追加される要素


//alert(targetId.innerHTML);	//テスト用
//alert(tagName[0].innerHTML);	//テスト用


	//「タイトルと商品説明」---------------------------------------------------------------------

	//HTMLタグ生成
	addTagText = addHtml(elmTagName,elmTagId,elmTagValue1,elmTagText);

	//「タイトルと商品説明」の追加
	tagName[0].insertAdjacentHTML('beforeend',addTagText);

	//検索後チェックボックスにチェックを入れる(yahooの仕様に揃えるため)
	if(window.location.search.indexOf(elmTagValue1) != -1){
		document.ni[elmTagId].checked = true;
	}

	//チェックボックスのクリックに応じてhidden要素を書き換える
	document.ni[elmTagId].addEventListener("click", function() {changeHidden(elmTagId,hiddenTagName,elmTagValue1,elmTagValue2)},false);



	//「あいまい検索」----------------------------------------------------------------------------
	
	//文書生成
	addAimaiText = addHtml(elmAimaiName,elmAimaiId,elmAimaiValue1,elmAimaiText);

	//「あいまい検索」の追加
	tagName[0].insertAdjacentHTML('beforeend',addAimaiText);

	//検索後チェックボックスにチェックを入れる(yahooの仕様に揃えるため)
	if(window.location.search.indexOf("ngram=1") != -1){
		document.ni.ni04.checked = true;
	}

	//チェックボックスのクリックに応じてhidden要素を書き換える
	document.ni[elmAimaiId].addEventListener("click", function() {changeHidden(elmAimaiId,hiddenAimaiName,elmAimaiValue1,elmAimaiValue2)},false);



	//関数----------------------------------------------------------------------------------------

	//HTMLタグ生成
	function addHtml(name,elmid,elmvalue1,text){

		var text = '<li><input type="checkbox" name="' + name
			+ '" id="' + elmid
			+ '" class="cb" value="' + elmvalue1
			+ '"><label for="' + elmid
			+ '">' + text
			+ '</label></li>';

		return text;
	}


	//チェックボックスのチェックを外したら通常検索に戻す
	function changeHidden(id,name,value1,value2){
		hiddenElm = document.getElementsByName(name);

		//エラー対策(検索前はこのinputタグがないため)
		if(hiddenElm.length > 1){
			for(i=0;i<hiddenElm.length;i++){
				if(document.ni[id].checked){
					hiddenElm[i].value = value1;
				}else{
					hiddenElm[i].value = value2;
				}
			}
//alert(hiddenElm[2].value);	//テスト用
		}
	}


})();
//=====================================================================================================================