This script add "Scholar" link to Google search result page.
当前为
// ==UserScript==
// @name Google Scholar in Google
// @namespace https://thynanami.dev
// @description This script add "Scholar" link to Google search result page.
// @match https://www.google.com/search*
// @version 0.0.1
// @author Nanami Nakano
// @grant GM_addStyle
// @license MIT
// ==/UserScript==
(function () {
'use strict';
function getSearchText() {
const searchTextarea = document.querySelector('[aria-label="Search"]');
if (!searchTextarea) {
const searchTextarea = document.querySelector('[role="textbox"]');
const searchText = searchTextarea.value;
return encodeURI(`https://scholar.google.com/scholar?q=${searchText}`);
}
const searchText = searchTextarea.textContent;
return encodeURI(`https://scholar.google.com/scholar?q=${searchText}`);
}
function getTab() {
const listItems = document.querySelectorAll('[role="listitem"]');
if (listItems.length < 2) {
throw new Error("Could not find the second listitem to copy styles from.");
}
return listItems[1];
}
try {
const url = getSearchText();
const tab = getTab();
const newTab = document.createElement("div");
Array.from(tab.attributes).forEach(attribute => {
newTab.setAttribute(attribute.name, attribute.value);
});
const anchor = tab.querySelector("a");
const newAnchor = document.createElement("a");
Array.from(anchor.attributes).forEach(attribute => {
newAnchor.setAttribute(attribute.name, attribute.value);
});
newAnchor.setAttribute("href", url);
const title = anchor.querySelector("div");
const newTitle = document.createElement("div");
newTitle.textContent = "Scholar";
Array.from(title.attributes).forEach(attribute => {
newTitle.setAttribute(attribute.name, attribute.value);
});
newAnchor.appendChild(newTitle);
newTab.appendChild(newAnchor);
const navigationContainer = document.querySelector('[role="list"]');
if (navigationContainer) {
navigationContainer.insertBefore(newTab, tab);
}
} catch (e) {
console.warn(e);
}
})();