// ==UserScript== // @name 更好地一键开启github1s页面 // @namespace github // @author cjm // @description 更好地支持文件级用打开github1s // @include https://github.com/ // @match https://github.com/* // @version 2.0.0 // @license MIT // @downloadURL none // ==/UserScript== function func() { setTimeout(()=>{ const href = `https://github1s.com${location.pathname}` const ele1 = document.getElementById('wocao1'); const ele2 = document.getElementById('wocao1'); if(ele1 || ele2){ ele1.href = href; ele2.href = href; }else{ const btn1 = `` + '使用 github1s 打开(新窗口)' + '' const btn2 = `` + '使用 github1s 打开(本页)' + '' const parent = document.querySelector('#repository-container-header'); parent.insertAdjacentHTML('beforeBegin', btn1); parent.insertAdjacentHTML('beforeBegin', btn2); } } , 1000) } func(); //修改native以拦截popstate事件 var pushState = history.pushState; history.pushState = function() { var ret = pushState.apply(history, arguments); window.dispatchEvent(new Event("pushstate")); window.dispatchEvent(new Event("locationchangefathom")); return ret; } window.addEventListener("popstate", function() { window.dispatchEvent(new Event("locationchangefathom")) }); window.addEventListener("locationchangefathom", trackPageview) function trackPageview() { func(); }