您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
wiki 3d
// ==UserScript== // @name wiki3d // @include *wikipedia* // @supportURL https://github.com/sxlgkxk/browser_script/issues // @version 0.3 // @description wiki 3d // @namespace http://sxlgkxk.github.io/ // @author sxlgkxk // @icon http://sxlgkxk.github.io/im/avatar.jpg // @license MIT // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // ==/UserScript== /* 1. 代码功能: wiki内容的3d化 */ (function () { //-------------------------------- common functions -------------------------------- function addScript(src, content='') { let scripts_dom = document.createElement('script'); if (content){ scripts_dom.textContent = content; scripts_dom.type = 'module'; } else { scripts_dom.src = src; scripts_dom.type = 'text/javascript'; } document.getElementsByTagName('head')[0].appendChild(scripts_dom); } addScript('https://unpkg.com/axios/dist/axios.min.js') addScript('https://cdn.jsdelivr.net/npm/marked/marked.min.js') function addStyle(html) { let style = document.createElement("div") document.body.before(style) style.innerHTML = `<style>` + html + `</style>` } //-------------------------------- code snippets -------------------------------- //-------------------------------- main -------------------------------- let doms=document.querySelector('#bodyContent').querySelectorAll('a') let urlSet=new Set() for(let dom of doms){ let url=dom.href if(url.match(/^https:\/\/en.(m\.)*wikipedia.org\/wiki/)){ if(url.match(/^https:\/\/en.(m\.)*wikipedia.org\/wiki\/.*?([:\(#]|Main_Page|undefined)+.*?/)) continue if(url == location.href) continue urlSet.add(url) } } let urls=Array.from(urlSet) // urls=urls.sort(()=>Math.random()-0.5) let content=``; for(let url of urls){ let name=new URL(url).pathname content+=`${name}\n` } //-------------------------------- wrap up -------------------------------- // three.js let scripts_dom = document.createElement('script'); scripts_dom.textContent =`{ "imports": { "three": "https://unpkg.com/three/build/three.module.js" } }`; scripts_dom.type = 'importmap'; document.getElementsByTagName('head')[0].appendChild(scripts_dom); // dom insert let three_dom = document.createElement('div') document.body.before(three_dom) three_dom.id='three_panel' addScript('', ` // import { wikiInit } from 'https://sxlgkxk.github.io/cdn/3d/mc/mc.js'; import { wikiInit } from 'http://127.0.0.1:4000/cdn/3d/mc/mc.js'; wikiInit("three_panel", \`${content}\`); `) addStyle(` #three_panel { margin-bottom: 10px; margin-top: 10px; } `) })();