Greasy Fork

Greasy Fork is available in English.

【2022最新】网页工具合集,不一样的浏览器体验

按 alt + j 跳转聚合导航页面,选择相应搜索引擎,即可跳转你需要的资源,后面会不断筛选最强力的搜索引擎~

当前为 2022-01-22 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         【2022最新】网页工具合集,不一样的浏览器体验
// @namespace    http://tampermonkey.net/
// @version      0.0.3
// @icon         https://raw.githubusercontent.com/Anjude/tampermonkey/master/images/weindex-icon.png
// @description  按 alt + j 跳转聚合导航页面,选择相应搜索引擎,即可跳转你需要的资源,后面会不断筛选最强力的搜索引擎~
// @author       anjude
// @match        *
// @include      *
// @require      https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js
// @require      https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js
// @grant        GM_openInTab
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function () {
  'use strict';

  /**
   * 默认设置
   * `${e.ctrlKey}${e.shiftKey}${e.altKey}${pressKey}`
   */
  let defaultConf = {
    shortcutMap: {
      toSite: '001J'
    }
  }

  let allSiteInfo = {
    'zhihu': {

    }
  }

  let siteInfo = {}
  let scriptConf = GM_getValue('scriptConf') || defaultConf

  if (/zhihu.com/.test(document.location.href)) {
    siteInfo = allSiteInfo['zhihu']
  }


  const blockKey = (e) => {
    let isBlock = false

    // do sth if isBlock should be true

    return isBlock
  }


  $(document).ready(() => {
    $(document).delegate('input, textarea',
      'focus', () => { focus = true })
    $(document).delegate('input, textarea',
      'blur', () => { focus = false })
    $(document).keydown((e) => {
      // 如果正在打字或者特殊情况,屏蔽快捷键
      if (!e.altKey && !e.shiftKey && !e.ctrlKey
        && (focus || blockKey(e))) {
        return
      }
      const k = (key) => key ? 1 : 0
      let pressKey = String.fromCharCode(e.keyCode)
      let command = `${k(e.ctrlKey)}${k(e.shiftKey)}${k(e.altKey)}${pressKey}`
      let keyMap = scriptConf.shortcutMap

      // console.log('键盘:', command)
      switch (command) {
        case keyMap.toSite:
          window.GM_openInTab('http://anjude.xyz', { active: true, insert: true, setParent: true })
      }
    })
  })


})();
function startHttpProxy() {
  XMLHttpRequest.prototype.send = new Proxy(XMLHttpRequest.prototype.send, {
    apply: (target, thisArg, args) => {
      thisArg.addEventListener('load', event => {
        try {
          // console.log(111, event.target.responseURL)
          let { responseText, responseURL } = event.target
          if (!/^{.*}$/.test(responseText)) return
          const result = JSON.parse(responseText);
          /\/player\/playurl/.test(responseURL)
            && chapListener(result);
        } catch (err) { }
      })
      return target.apply(thisArg, args)
    }
  })
}