您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a link to the open-access search tool JURN just before the "more" button, on Google Search.
- // ==UserScript==
- // @name JURN on Google Search
- // @description Adds a link to the open-access search tool JURN just before the "more" button, on Google Search.
- // @namespace https://greasyfork.org/en/scripts/368234-jurn-on-google-search
- // @include http*://google.*
- // @include http*://www.google.*
- // @include https://encrypted.google.*
- // @version 1.1
- // @author dhaden with thanks to sergio91pt
- // @license GPLv3
- // @grant none
- // ==/UserScript==
- var jurnUrl = 'https://cse.google.com/cse/publicurl?cx=017986067167581999535:rnewgrysmpe#gsc.tab=0&gsc.q=';
- var jurnEleId = 'hdtb-us-jurn';
- var appendEleId = 'hdtb-msb-vis';
- var createJurnElement = function() {
- var wrapper = document.createElement('div');
- wrapper.id = jurnEleId;
- wrapper.classList.add('hdtb-mitem');
- wrapper.classList.add('hdtb-imb');
- var anchor = document.createElement('a');
- var anchorClasses = anchor.classList;
- anchorClasses.add('q');
- anchorClasses.add('qs');
- anchor.textContent = 'Jurn';
- wrapper.appendChild(anchor);
- return wrapper;
- };
- var getSearchQuery = function(href) {
- var results = /[\\?&]q=([^&#]*)/.exec(href);
- return (results) ? results[1] : '';
- };
- var updateJurnHref = function(wrapper, jurnEle) {
- var otherHref = wrapper.querySelector('a').getAttribute('href');
- var query = getSearchQuery(otherHref);
- var anchor = jurnEle.firstChild;
- anchor.setAttribute('href', jurnUrl + query);
- };
- var addJurnLink = function() {
- var wrapper = document.getElementById(appendEleId);
- if (wrapper) {
- var jurnEle = createJurnElement();
- updateJurnHref(wrapper, jurnEle);
- wrapper.appendChild(jurnEle);
- }
- };
- var watchJurnLink = function() {
- // Whenever the query changes without changing the window href, our node
- // is removed, so use a MutationObserver to update and put us back.
- new MutationObserver(function(mutations) {
- var len = mutations.length;
- for (var i = 0; i < len; i++) {
- // Normally the link bar is removed then added, along
- // with search results, so just check additions.
- if (mutations[i].addedNodes) {
- if (!document.getElementById(jurnEleId)) {
- addJurnLink();
- }
- break;
- }
- }
- }).observe(document.body, {'childList': true, 'subtree': true});
- };
- addJurnLink();
- watchJurnLink();