// ==UserScript== // @name keledge-helper // @namespace http://tampermonkey.net/ // @version 0.1 // @description 可知网导出页面到PDF,仅对PDF预览有效 // @author 2690874578@qq.com // @match https://www.keledge.com/pdfReader?* // @require https://cdn.staticfile.org/pdf-lib/1.17.1/pdf-lib.min.js // @icon https://www.google.com/s2/favicons?sz=64&domain=keledge.com // @grant none // @run-at document-start // @license GPL-3.0-only // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 全局常量 const GUI = `

keledge-helper

`; // 全局变量 window.pdf_data_list = []; window.log = console.log.bind(console); window.error = console.error.bind(console); /** * @param {number} delay */ function sleep(delay) { return new Promise(resolve => setTimeout(resolve, delay)); } async function wait_for_pdfjs() { while (!window.pdfjsLib) { await sleep(200); } } function hooked_get_doc(pdf_data) { pdf_data_list.push(pdf_data.data); log(`page collected: ${pdf_data_list.length}`); return getDocument(pdf_data); } function hook_pdfjs() { window.getDocument = pdfjsLib.getDocument.bind(pdfjsLib); pdfjsLib.getDocument = hooked_get_doc; } /** * 加载CDN脚本 * @param {string} url */ async function load_web_script(url) { try { // xhr+eval方式 const resp = await fetch(url); const code = await resp.text(); Function(code)(); } catch(e) { error(e); // 嵌入