您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Capture HTML, CSS, and JS of the page and save it as a file
// ==UserScript== // @name Capture and Save Website Source // @namespace http://tampermonkey.net/ // @version 0.1 // @description Capture HTML, CSS, and JS of the page and save it as a file // @author You // @match *://*/* // @grant GM_download // @grant GM_info // @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js // ==/UserScript== (function() { 'use strict'; // Function to capture and save the website's HTML, CSS, and JS function captureAndSave() { // Get HTML content let htmlContent = document.documentElement.outerHTML; // Get CSS content let cssContent = ''; document.querySelectorAll('link[rel="stylesheet"]').forEach(link => { fetch(link.href) .then(response => response.text()) .then(css => cssContent += css); }); // Get JavaScript content let jsContent = ''; document.querySelectorAll('script[src]').forEach(script => { fetch(script.src) .then(response => response.text()) .then(js => jsContent += js); }); // Wait for all fetch requests to complete Promise.all([ ...Array.from(document.querySelectorAll('link[rel="stylesheet"]')).map(link => fetch(link.href).then(response => response.text())), ...Array.from(document.querySelectorAll('script[src]')).map(script => fetch(script.src).then(response => response.text())) ]).then(() => { // Create a new JSZip instance const zip = new JSZip(); zip.file("index.html", htmlContent); zip.file("styles.css", cssContent); zip.file("scripts.js", jsContent); // Generate the ZIP file and save it zip.generateAsync({ type: "blob" }) .then(content => { saveAs(content, "website-source.zip"); }); }); } // Add a button to trigger capture and save let button = document.createElement('button'); button.textContent = 'Save Website Source'; button.style.position = 'fixed'; button.style.top = '10px'; button.style.right = '10px'; button.style.zIndex = '9999'; button.style.padding = '10px'; button.style.backgroundColor = '#007BFF'; button.style.color = '#FFFFFF'; button.style.border = 'none'; button.style.borderRadius = '5px'; button.style.cursor = 'pointer'; document.body.appendChild(button); button.addEventListener('click', captureAndSave); })();