您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
这是一款可以功能强大、使用简单的工具\n可将网页文章内容转为markdown文档\n可提取网页中的svg图片\n阅读的时候可以高亮显示选中的文本(需要在设置中打开,每个网站的设置都是独立的)\n可以根据规则隐藏广告内容(需要在设置中打开,每个网站的设置都是独立的)\n可以高亮下载链接,进入电影天堂等下载站的时候,如果页面中有下载地址,会高亮出来,点击下载地址方便下载到迅雷云盘或者玩客云。。
- // ==UserScript==
- // @name FCTool
- // @version 0.1.4
- // @author xiefucai
- // @description 这是一款可以功能强大、使用简单的工具\n可将网页文章内容转为markdown文档\n可提取网页中的svg图片\n阅读的时候可以高亮显示选中的文本(需要在设置中打开,每个网站的设置都是独立的)\n可以根据规则隐藏广告内容(需要在设置中打开,每个网站的设置都是独立的)\n可以高亮下载链接,进入电影天堂等下载站的时候,如果页面中有下载地址,会高亮出来,点击下载地址方便下载到迅雷云盘或者玩客云。。
- // @homepage http://xiefucai.gitee.io
- // @license MIT
- // @match *://*/*
- // @namespace http://tampermonkey.net/
- // @homepageURL http://xiefucai.gitee.io
- // @grant GM_registerMenuCommand
- // @grant GM_getResourceText
- // @grant GM_addStyle
- // @grant GM_xmlhttpRequest
- // @resource injectScript https://cdn.jsdelivr.net/gh/xiefucai/Chrome@master/userscripts/send2reader/index1.js?20240603
- // @resource injectScript_test https://localhost:3000/static/js/index.bundle.js?24
- // ==/UserScript==
- 'use strict';
- const getFullPath = src => {
- const a = document.createElement('a')
- a.href = src
- return a.href
- }
- const getImgSrc = img => {
- const src =
- img.getAttribute('data-actualsrc') ||
- img.getAttribute('data-original-src') ||
- img.getAttribute('data-src') ||
- img.src ||
- ''
- return getFullPath(src)
- }
- const corsRequest = (options, callback) => {
- if (typeof GM_xmlhttpRequest === 'function') {
- console.log('GM_xmlhttpRequest request');
- GM_xmlhttpRequest({
- ...options,
- /*
- onreadystatechange: function(event) {
- console.log(
- `Ready state: ${event.readyState}, status ${event.status}`
- );
- },
- onprogress: function(event) {
- if (event.lengthComputable) {
- console.log(
- `Downloading: ${event.loaded}/${event.total}`
- );
- }
- },
- */
- onload: function(res) {
- console.log('GM_xmlhttpRequest onload finish', res);
- callback(null, res.response || res);
- },
- onerror: function(res) {
- console.log("Can't load file.", res);
- callback(res)
- }
- });
- } else if (
- typeof (window.GM && window.GM.xmlHttpRequest) === 'function'
- ) {
- console.log('GM.xmlHttpRequest request');
- GM.xmlHttpRequest({
- ...options,
- onload: function(response) {
- var responseXML = null;
- // Inject responseXML into existing Object (only appropriate for XML content).
- console.log(response);
- if (!response.responseXML) {
- responseXML = new DOMParser().parseFromString(
- response.responseText,
- 'text/xml'
- );
- }
- console.log(
- [
- response.status,
- response.statusText,
- response.readyState,
- response.responseHeaders,
- response.responseText,
- response.finalUrl,
- responseXML
- ].join('\n')
- );
- }
- });
- } else {
- console.log('corsRequest request');
- /* document.dispatchEvent(
- new CustomEvent('corsRequest', {
- detail: {
- options,
- callback: (err, data) => {
- console.log(err, data);
- if (err) {
- reject(err);
- return;
- }
- resolve(data);
- }
- }
- })
- ); */
- }
- };
- if (window === top.window) {
- let scriptContent = GM_getResourceText('injectScript')
- let script = document.createElement('script')
- script.id = 'xiefucai-inject-script';
- var blob = new Blob([scriptContent], {
- type: 'text/javascript'
- });
- var url = URL.createObjectURL(blob);
- script.onerror = function () {
- console.log("load script ", url, "failed");
- new Function(scriptContent)();
- }
- script.src = url;
- script.charset="utf-8";
- document.body.corsAble = true;
- document.addEventListener('corsRequest', function (e) {
- corsRequest(e.detail.options, e.detail.callback);
- }, false)
- document.body.appendChild(script);
- } else if (location.hostname === 'www.iciba.com') {
- const styleElem = document.createElement('link');
- styleElem.href = '//cdn.jsdelivr.net/gh/xiefucai/Chrome@master/userscripts/send2reader/iciba.css';
- // styleElem.href = 'http://localhost:3000/iciba.css';
- styleElem.rel = "stylesheet";
- styleElem.type = "text/css";
- document.head.appendChild(styleElem);
- }