// ==UserScript== // @name YGestures // @namespace http://monodog.net/ // @version 0.6.1 // @license CC-BY-NC-SA-4.0 // @description for Android Browser without Touch Gestures(particularly Yandex)【向手机版yandex浏览器注入前进&后退手势&&网页文本粘贴功能,并可临时禁用某一手势】 // @author Monodog Theiions // @icon https://monodog.neocities.org/js/icon/YGestures.png // @homepage https://greasyfork.org/zh-CN/scripts/392713-ygestures // @supportURL mailto:wung.thy@gmail.com // @match http://*/* // @include https://*/* // @exclude *://*login* // @run-at document-body // @require https://cdn.jsdelivr.net/npm/hammerjs@2.0.8 // @grant unsafeWindow // @contributionURL https://qr.alipay.com/fkx02998fhy75rwy0pjx2eb // @compatible Yandex for Android , etc // @incompatible All Browser without Touch // @downloadURL https://update.greasyfork.icu/scripts/392713/YGestures.user.js // @updateURL https://update.greasyfork.icu/scripts/392713/YGestures.meta.js // ==/UserScript== (function() { 'use strict'; let YGScript ; let head=document.getElementsByTagName("head")[0]; function WriteJsFunction(cont,html) { cont.innerHTML ="
js...
"+html; let oldScript = cont.getElementsByTagName('script')[0]; let newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.innerHTML = oldScript.innerHTML; head.appendChild(newScript); head.removeChild(YGScript); YGScript=newScript; } if(window.navigator.userAgent.toLowerCase().indexOf("linux")>10)// code here { let YGBool=0; let allowNone="none"; let copyStr=""; let array=["上隐藏*下显示*左前进*右后退,按住禁用滑动事件","右滑已经禁用,按住继续更改","水平滑动已经禁用,按住继续更改","上下功能已对调,左右滑动已禁用,按住还原"]; let body=document.getElementsByTagName("body")[0]; var floatDIV = document.createElement("div"); YGScript = document.createElement("script"); head.appendChild(YGScript); floatDIV.style.cssText= "z-index: 9999;width:100%; height:30px; background:SlateBlue;color:Ivory;line-height:30px;display:none;position: fixed;bottom: 0;font-size:12px"; floatDIV.innerHTML=array[0]; body.appendChild(floatDIV); let footArea = document.createElement("textarea"); footArea.rows="9";footArea.style.cssText= "z-index: 9999;width:60%;border:solid 1px #f00; background:Ivory;color:SlateBlue;display:none;position: fixed;bottom: 30px;font-size:12px"; body.appendChild(footArea); let pingGoogle=false; let imgStic=document.createElement("img"); imgStic.src="https://about.google/assets/img/menu.png?cache="+parseInt(new Date().getTime()/9999); imgStic.onload = function() { pingGoogle=true; body.removeChild(imgStic); } body.appendChild(imgStic); new Hammer(body).on("pan", function(e) { let _e = event || window.event; if(Math.abs(e.deltaY) < 2 * Math.abs(e.deltaX) + 2 ) { if(Math.abs(e.deltaX)< 2 * Math.abs(e.deltaY)+ 2 && Math.abs(e.deltaX)>2 ) { if(e.deltaX>0){ //let e = event || window.event; copyStr=(document.elementFromPoint(_e.clientX, _e.clientY).innerHTML); floatDIV.style.display="block"; if(footArea.style.display=="none")floatDIV.innerHTML=array[YGBool]+"#@向上拖拽启动粘贴"; copyStr=copyStr.replace(/<[^>]*>/g, '\r\n');footArea.value=copyStr; } else if(e.deltaY>2){ if(footArea.value==""||footArea.style.display=="none"){ //alert(e.deltaX+';'+e.deltaY); YGBool=0; floatDIV.innerHTML=array[YGBool]; floatDIV.style.display=allowNone; ;footArea.style.display="none"; copyStr=""; } else if(footArea.value.substr(0,4)=="http"){ window.open(footArea.value); } else{ if(copyStr!="<"+footArea.value+">"){ copyStr=footArea.value; if(!pingGoogle) window.open("https://www.baidu.com/s?wd="+copyStr); else window.open("https://www.google.com/search?ie=UTF-8&q="+copyStr); copyStr="<"+footArea.value+">"; } } } else{ "unsafe#cannot use"; } } } else if(((e.deltaY<0)!=(YGBool==3))&&footArea.style.display=="none") {floatDIV.style.display=allowNone;} else floatDIV.style.display= "block";}) .on("swipeleft", function (e) { if(Math.abs(e.deltaX) > 2 * Math.abs(e.deltaY) + 2 && YGBool<2 ) window.history.go(1);}) .on("swiperight", function (e) { if(Math.abs(e.deltaX) > 2 * Math.abs(e.deltaY) + 2 && YGBool==0 ) window.history.go(-1);}) .on("pressup", function (x) { var e = event || window.event; let ele=document.elementFromPoint(e.clientX,e.clientY); if(ele!=footArea&&ele!=floatDIV) {copyStr=ele.innerHTML; floatDIV.style.display="block";} if(footArea.style.display=="none")floatDIV.innerHTML=array[YGBool]+"#@向上拖拽启动粘贴"; copyStr=copyStr.replace(/<[^>]*>/g, '\r\n');footArea.value=copyStr;}) new Hammer(floatDIV).on("pressup", function (e) { if(footArea.style.display=="block"); else if(copyStr=="") floatDIV.innerHTML=array[YGBool=(YGBool+1)&3]; else floatDIV.innerHTML=array[YGBool=(YGBool+1)&3]+"#@向上拖拽启动粘贴";}) .on("pan", function (e) { if(-(e.deltaY) > 2 * Math.abs(e.deltaX) + 2 ) { let fv=footArea.value; if(footArea.style.display=="block"&& fv.substr(0,8)=="'){ WriteJsFunction(floatDIV,"