表单缓存和自动填写脚本

保存并自动填写表单内容

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         表单缓存和自动填写脚本
// @namespace    autoform.scrpt.lukezh.cn
// @version      0.1
// @description  保存并自动填写表单内容
// @author       lukezh
// @match        *://*/*
// @grant        GM_setValue
// @grant        GM_getValue
// @license      GPL-3.0-only
// ==/UserScript==

(function() {
    'use strict';

    // 从缓存中获取之前保存的表单数据
    var cachedData = GM_getValue('form_data', {});

    // 保存表单数据到缓存
    function saveFormData() {
        var formData = {};
        var inputElements = document.querySelectorAll('input, textarea');
        inputElements.forEach(function(element) {
            if (element.name && element.type !== 'submit') {
                formData[element.name] = element.value;
            }
        });
        GM_setValue('form_data', formData);
    }

    // 填充表单数据
    function fillForm() {
        var inputElements = document.querySelectorAll('input, textarea');
        inputElements.forEach(function(element) {
            if (element.name && element.type !== 'submit' && cachedData[element.name]) {
                element.value = cachedData[element.name];
            }
        });
    }

    // 在页面加载完毕后自动填写表单
    window.addEventListener('load', function() {
        fillForm();
    });

     在表单提交时保存数据
    var formElement = document.querySelector('form');
    if (formElement) {
        formElement.addEventListener('submit', function() {
            saveFormData();
        });
    }
})();