Greasy Fork

表单缓存和自动填写脚本

保存并自动填写表单内容

// ==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();
        });
    }
})();