您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
GSearch in Persian can change Google search results to Persian language, without affecting the RTL (Right-to-Left) direction. (Based on the fork from tgxhx)
当前为
// ==UserScript== // @name GSearch in Persian // @name:fa سوییچ جستو در سایتهای فارسی // @version 0.4 // @author Amir // @description GSearch in Persian can change Google search results to Persian language, without affecting the RTL (Right-to-Left) direction. (Based on the fork from tgxhx) // @homepage https://github.com/Amm1rr/GSearch-Toggle/ // @namespace amm1rr // @description:fa با این اسکریپت به راحتی میتوان بین جستجو فقط در سایتهای فارسی در جستجوی گوگل سوییچ کرد، یک گزینه زیر جستجوی گوگل اضافه می شود. البته بدون تغییر در // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @icon https://www.google.com/favicon.ico // @match https://www.google.com/search* // @exclude https://www.google.com/maps* // @grant GM_addStyle // ==/UserScript== /* Last Changes: (Sort by Date) 10/07/2023 - Excluded Google Map - Added support for UK/US Google domains - Added support for mobile, tablet, and desktop devices */ (function() { 'use strict'; // I just added this variable to check if the class is found for the first time, so there's no need to execute multiple times. var iFoundCounter = 0; // How to use: // if( isMobile.any() ) alert('Mobile'); // To check to see if the user is on a specific mobile device: // if( isMobile.iOS() ) alert('iOS'); const isMobile = { Android: function() { return navigator.userAgent.match(/Android/i); }, BlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, iOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, iPhone: function() { return navigator.userAgent.match(/iPhone/i); }, Opera: function() { return navigator.userAgent.match(/Opera Mini/i); }, Windows: function() { return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i); }, any: function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); }, mobile: function() { return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iPhone() || isMobile.Opera()); } }; // //-- Wait for the "Tools" button // if (isMobile.mobile()){ // waitForKeyElements('div[jsname="yIZuWb"]', onPageLoadedMobile); // }else{ // waitForKeyElements(".PuHHbb", onPageLoaded); // } function CreateSeprator(){ var seperator = document.createElement("div"); seperator.classList.add("IDFSOe"); //-- Class=> TZqsAd return seperator; } function CreateLink(){ var aTag = document.createElement('a'); var query = new URLSearchParams(decodeURIComponent(location.search)); const isFarsi = (query.get('lr') || '').toLowerCase() === 'lang_fa'; if (isFarsi) { query.delete('lr'); query.delete('tbs'); aTag.textContent = 'Clear'; } else { query.set('lr', 'lang_fa'); query.set('tbs', 'lr:lang_fa'); aTag.textContent = 'Persian'; } const href = `${location.origin}${location.pathname}?${query.toString()}`; aTag.setAttribute('href', href); aTag.classList.add('hdtb-tl'); aTag.style.cssText = 'color: #5f6368;text-decoration: none;'; return aTag; } function onPageLoadedMobile() { onPageLoaded("Mobile") } // Function to be executed after the page has completely loaded function onPageLoaded(arg) { if (arg=="Mobile"){ //-- Mobile var ToolsButton = document.querySelector('div[jsname="yIZuWb"]'); }else{ //-- Desktop var ToolsButton = document.querySelector(".PuHHbb"); //-- Tablet if (!ToolsButton) { ToolsButton = document.querySelector('.hdtb-tl-sel'); // alert("1." + ToolsButton); } if (!ToolsButton) { ToolsButton = document.querySelector('#hdtb-tls'); // alert("2." + ToolsButton); } if (!ToolsButton) { ToolsButton = document.querySelector('.TZqsAd'); // alert("3." + ToolsButton); } //-- Tablet } if (ToolsButton) { if (iFoundCounter > 1){return} } iFoundCounter++; var seperator = CreateSeprator(); var alink = CreateLink(); ToolsButton.insertAdjacentElement('afterend', seperator); seperator.insertAdjacentElement('afterend', alink); } //document.addEventListener('DOMContentLoaded', onPageLoaded); window.onload = onPageLoaded; })();