Greasy Fork

Greasy Fork is available in English.

网络百科聚合

同一词条在网络百科中互相跳转

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         网络百科聚合
// @version      1.00
// @description  同一词条在网络百科中互相跳转
// @match        *://baike.baidu.com/*
// @match        *://zh.wikipedia.org/*
// @match        *://baike.sogou.com/*
// @match        *://www.baike.com/*
// @match        *://baike.chinaso.com/*
// @match        *://baike.so.com/*
// @match        *://xuewen.cnki.net/*
// @grant        来自各个网络百科
// @author       太史子义慈
// @namespace    [email protected]
// ==/UserScript==

!(function() {
	wiki();
})();

function wiki() {
	//获取域名
	var wlhost = window.location.host;
	console.log(wlhost);
	var url = window.location.href;
	console.log(url);
	//百度百科
	var host_baidu = (wlhost == "baike.baidu.com");
	//维基百科
	var host_wiki = (wlhost == "zh.wikipedia.org");
	//搜狗百科
	var host_sogou = (wlhost == "baike.sogou.com");
	//互动百科
	var host_hudong = (wlhost == "www.baike.com");
	//国搜百科
	var host_china = (wlhost == "baike.chinaso.com");
	//360百科
	var host_360 = (wlhost == "baike.so.com");
	//知网学问
	var host_xuewen = (wlhost == "xuewen.cnki.net");
	
	//搜索引擎网址目录
	var dirall = dir_all();
	//新建选择框
	var new_select = document.createElement('select');
	new_select.setAttribute("id", "id_new_select");

	var new_select_2 = document.createElement('select');
	new_select_2.setAttribute("id", "id_new_select_2");

	//循环索引
	var i
	//选择框子节点下面要建立大量【选项】子节点
	for(i in dirall) {
		var v = dirall[i][0];
		new_option(v, i, new_select);
		new_option(v, i, new_select_2);
	}
	//新建按钮
	var new_btn = document.createElement('div');
	new_btn.setAttribute("id", "id_new_button");
	new_btn.innerHTML = "跳转搜索";

	var new_btn_2 = document.createElement('div');
	new_btn_2.setAttribute("id", "id_new_button_2");
	new_btn_2.innerHTML = "跳转搜索";

	//百度百科
	if(host_baidu) {
		//调整祖先节点的宽度
		var wsm = document.getElementsByClassName("wgt-searchbar-main")[0];
		wsm.style.cssText = "width: 100%;";

		var grandfather_baidu = document.getElementsByClassName("form");

		var grandfather_baidu_1 = grandfather_baidu[0];
		grandfather_baidu_1.style.cssText = "margin-left:0;";
		var father_a_uncles_baidu_1 = grandfather_baidu_1.children;
		var father_baidu_1 = father_a_uncles_baidu_1[0];
		var bro_baidu_1 = document.getElementsByClassName("help")[0];
		father_baidu_1.insertBefore(new_select, bro_baidu_1);
		father_baidu_1.insertBefore(new_btn, bro_baidu_1);
		new_select.style.cssText = "outline:none;font-size:17px;height:40px;margin:0 0 0 4px;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:17px;width:104px;height:40px;background-color:#FF5200;line-height:40px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;vertical-align:middle;";

		var grandfather_baidu_2 = grandfather_baidu[1];
		if(grandfather_baidu_2) {
			grandfather_baidu_2.style.cssText = "margin-left:0;";
			var father_a_uncles_baidu_2 = grandfather_baidu_2.children;
			var father_baidu_2 = father_a_uncles_baidu_2[0];
			father_baidu_2.appendChild(new_select_2);
			father_baidu_2.appendChild(new_btn_2);
			new_select_2.style.cssText = "outline:none;font-size:17px;height:34px;margin:0 0 0 4px;";
			new_btn_2.style.cssText = "display:inline-block;outline:none;font-size:17px;width:104px;height:34px;background-color:#FF5200;line-height:34px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;vertical-align:middle;";
		}
	} else if(host_wiki) {
		var p_search = document.getElementById("p-search");
		p_search.style.marginRight = "8px";

		var father_wiki = document.getElementById("right-navigation");
		father_wiki.appendChild(new_select);
		father_wiki.appendChild(new_btn);
		new_select.style.cssText = "outline:none;font-size:14px;height:25px;margin:9px 0 0 0;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:14px;width:84px;height:25px;background-color:#FF5200;line-height:25px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;margin:0 10px 0 0;";
	} else if(host_sogou) {
		var searchbox = document.getElementsByClassName("searchbox")[0];
		searchbox.style.width = "1138px";
		var btn_clear = document.getElementsByClassName("btn_clear")[0];
		btn_clear.style.right = "438px";

		var father_sogou_1 = document.getElementById("Form");
		var bro_sogou_1 = document.getElementById("divc");
		father_sogou_1.insertBefore(new_select, bro_sogou_1);
		father_sogou_1.insertBefore(new_btn, bro_sogou_1);
		new_select.style.cssText = "outline:none;font-size:16px;height:30px;margin:0 0 0 4px;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:16px;width:104px;height:33px;background-color:#FF5200;line-height:35px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";

		var father_sogou_2 = document.getElementById("Form2");
		var father_sogou_3 = document.getElementById("myForm");
		if(father_sogou_2) {
			var bro_sogou_2 = document.getElementById("divc2");
			father_sogou_2.insertBefore(new_select_2, bro_sogou_2);
			father_sogou_2.insertBefore(new_btn_2, bro_sogou_2);
		} else if(father_sogou_3) {
			var bro_sogou_3 = document.getElementById("divc2");
			father_sogou_3.insertBefore(new_select_2, bro_sogou_3);
			father_sogou_3.insertBefore(new_btn_2, bro_sogou_3);
		}
		new_select_2.style.cssText = "outline:none;font-size:16px;height:22px;margin:0 0 0 0;";
		new_btn_2.style.cssText = "display:inline-block;outline:none;font-size:16px;width:104px;height:24px;background-color:#FF5200;line-height:28px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";
	} else if(host_hudong) {
		var father_hudong_1 = document.getElementsByClassName("search-panel")[0];
		if(father_hudong_1) {
			father_hudong_1.appendChild(new_select);
			father_hudong_1.appendChild(new_btn);
			new_select.style.cssText = "outline:none;font-size:16px;height:36px;margin:0 0 0 4px;";
			new_btn.style.cssText = "display:inline-block;outline:none;font-size:16px;width:104px;height:34px;background-color:#FF5200;line-height:34px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";
		}
		var father_hudong_2 = document.getElementsByClassName("search-area")[0];
		if(father_hudong_2) {
			father_hudong_2.appendChild(new_select_2);
			father_hudong_2.appendChild(new_btn_2);
			new_select_2.style.cssText = "outline:none;font-size:16px;height:36px;margin:0 0 0 4px;";
			new_btn_2.style.cssText = "display:inline-block;outline:none;font-size:16px;width:104px;height:34px;background-color:#FF5200;line-height:38px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";

			var s_btn = document.getElementsByClassName("s-btn")[0];
			s_btn.style.cssText = "right:200px;"
		}
	} else if(host_china) {
		var bkgg = document.getElementsByClassName("bkgg")[0];
		bkgg.style.display = "none";

		var father_china = document.getElementsByClassName("seInputWrapper")[0];
		father_china.appendChild(new_select);
		father_china.appendChild(new_btn);
		new_select.style.cssText = "outline:none;font-size:16px;height:43px;margin:0 0 0 650px;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:16px;width:104px;height:43px;background-color:#FF5200;line-height:43px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;margin:-43px 0 0 738px;";
	}else if(host_360){
		var grandsfather_360 = document.getElementById("header");
		var father_360 = grandsfather_360.children[0].children[0].children[1];
		console.log(father_360);
		father_360.appendChild(new_select);
		father_360.appendChild(new_btn);
		new_select.style.cssText = "outline:none;font-size:15px;height:38px;margin:0 0 0 4px;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:15px;width:104px;height:38px;background-color:#FF5200;line-height:39px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";
	
		var search_word = document.getElementsByClassName("search-word")[0];
		search_word.style.width = "400px";
		var j_search_word = document.getElementById("J-search-word");
		j_search_word.style.width = "390px";
	}else if(host_xuewen){
		var header = document.getElementById("header");
		header.style.width = "1233px";
		
		var father_xuewen = document.getElementById("searchbg");
		father_xuewen.style.width = "667px";
		var bro_xuewen = father_xuewen.children[2];
		
		father_xuewen.insertBefore(new_select,bro_xuewen);
		father_xuewen.insertBefore(new_btn,bro_xuewen);
		new_select.style.cssText = "outline:none;font-size:15px;height:32px;margin:0 0 0 4px;";
		new_btn.style.cssText = "display:inline-block;outline:none;font-size:15px;width:104px;height:32px;background-color:#FF5200;line-height:33px;text-align:center;color:white;letter-spacing:1px;cursor:pointer;";
		
	}

	//按钮点击事件
	new_btn.onclick = function new_btn_click() {
		//获得输入框数据
		var new_input = "";
		if(host_baidu) {
			new_input = father_baidu_1.children[0];
		} else if(host_wiki) {
			new_input = document.getElementById("searchInput");
		} else if(host_sogou) {
			new_input = document.getElementById("searchText");
		} else if(host_hudong) {
			new_input = document.getElementsByClassName("ac_input")[0];
		} else if(host_china) {
			new_input = document.getElementsByClassName("search_input2")[0];
		} else if(host_360){
			new_input = document.getElementById("J-search-word");
		} else if(host_xuewen){
			new_input = document.getElementById("txtSearchKey");
		}
		var new_input_val = new_input.value;
		//计算输入框数据长度
		var new_input_val_len = new_input_val.length;
		if(host_wiki) {
			if(new_input_val_len == 0) {
				var ooui_php_1 = document.getElementById("ooui-php-1");
				var firstHeading = document.getElementById("firstHeading");
				if(ooui_php_1) {
					var ooui_php_1_val = ooui_php_1.value;
					var ooui_php_1_val_len = ooui_php_1_val.length;
					if(ooui_php_1_val_len > 0) {
						new_input_val = ooui_php_1_val;
						new_input_val_len = ooui_php_1_val_len;
					}
				} else if(firstHeading) {
					var firstHeading_val = firstHeading.firstChild.data;
					var firstHeading_val_len = firstHeading_val.length;
					if(firstHeading_val_len > 0) {
						new_input_val = firstHeading_val;
						new_input_val_len = firstHeading_val_len;
					}
				}
			}
		}
		//如果输入框有数据
		if(new_input_val_len > 0) {
			//获得选择框里被选中的选项索引
			var option_index = new_select.selectedIndex;
			//根据索引获得获得选择框里被选中的选项id
			var option_select_id = new_select.options[option_index].id;
			//根据id和网址目录获得网址
			var pcsearch = dirall[option_select_id][1];
			//用输入框的数据替换掉网址内的替换符
			var dti = pcsearch.replace("%sv%", new_input_val);
			//网址跳转
			window.open(dti);
		} else {
			alert("请在前面的输入框输入要搜索的内容。[油猴脚本]");
			new_input.focus();
		}
	}

	new_btn_2.onclick = function new_btn_click_2() {
		//获得输入框数据
		var new_input_2;
		if(host_baidu) {
			new_input_2 = father_baidu_2.children[0];
		} else if(host_sogou) {
			new_input_2 = document.getElementById("searchText2");
		} else if(host_hudong) {
			new_input_2 = document.getElementsByClassName("ac_input")[1];
		}
		var new_input_2_val = new_input_2.value;
		//计算输入框数据长度
		var new_input_2_val_len = new_input_2_val.length;
		//
		if(host_hudong) {
			if(new_input_2_val_len == 0) {
				var content_h1 = document.getElementsByClassName("content-h1")[0].children[0];
				var content_h1_val = content_h1.innerHTML;
				var content_h1_val_len = content_h1_val.length;
				if(content_h1_val_len > 0) {
					new_input_2_val = content_h1_val;
					new_input_2_val_len = content_h1_val_len;
				}
			}
		}
		//如果输入框有数据
		if(new_input_2_val_len > 0) {
			//获得选择框里被选中的选项索引
			var option_index_2 = new_select_2.selectedIndex;
			//根据索引获得获得选择框里被选中的选项id
			var option_select_id_2 = new_select_2.options[option_index_2].id;
			//根据id和网址目录获得网址
			var pcsearch_2 = dirall[option_select_id_2][1];
			//用输入框的数据替换掉网址内的替换符
			var dti_2 = pcsearch_2.replace("%sv%", new_input_2_val);
			//网址跳转
			window.open(dti_2);
		} else {
			alert("请在前面的输入框输入要搜索的内容。[油猴脚本]");
			new_input_2.focus();
		}
	}
}

//新建option
function new_option(ih, aid, ns) {
	var new_opt = document.createElement('option');
	new_opt.innerHTML = ih;
	new_opt.setAttribute("id", aid);
	ns.appendChild(new_opt);
}

//搜索引擎网址目录,%sv%为替换符
function dir_all() {
	var da = {
		"id_opt_00": {
			0: "维基百科",
			1: "https://zh.wikipedia.org/w/index.php?search=%sv%&fulltext=1",
		},
		"id_opt_01": {
			0: "百度百科",
			1: "https://baike.baidu.com/search?word=%sv%",
		},
		"id_opt_02": {
			0: "百度搜索",
			1: "https://www.baidu.com/s?wd=site:(baike.baidu.com) \"%sv%\"&ct=1",
		},
		"id_opt_03": {
			0: "搜狗百科",
			1: "http://baike.sogou.com/Search.e?sp=S%sv%",
		},
		"id_opt_04": {
			0: "互动百科",
			1: "http://so.baike.com/doc/%sv%",
		},
		"id_opt_05": {
			0: "国搜百科",
			1: "http://baike.chinaso.com/wiki/search?q=%sv%",
		},
		"id_opt_06": {
			0: "知网学问",
			1: "http://xuewen.cnki.net/searchentry.aspx?key=%sv%",
		},
		"id_opt_07": {
			0: "必应网典",
			1: "http://www.bing.com/knows/search?mkt=zh-cn&q=%sv%",
		},
		"id_opt_08": {
			0: "360百科",
			1: "https://baike.so.com/search/?q=%sv%",
		},
	}
	return da;
}