You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GreaseMonkey中移除历史记录条目优化页面回退?

解决GreaseMonkey脚本回退跳过GET页面的问题

核心思路

当脚本自动触发POST请求后,通过修改浏览器历史记录,让回退操作直接跳过初始的GET页面。主要有两种可靠实现方式:替换历史记录条目,或监听回退事件主动跳过GET页面。

具体实现方案

方案一:替换历史记录(推荐)

POST请求完成后,用当前POST页面的状态替换掉历史栈中GET页面的记录,这样浏览器历史里只会保留POST页面的条目,回退时直接回到更早的页面。

示例代码:

// ==UserScript==
// @name        自动提交并处理回退
// @namespace   internal-form-handler
// @match       http://你的内部URL/*
// @grant       none
// @version     1.0
// @description 自动提交表单,回退时跳过GET页面
// ==/UserScript==

(function() {
    'use strict';

    // 检测是否为GET请求的表单页面
    const targetForm = document.querySelector('form[method="POST"]');
    if (targetForm) {
        // 自动点击提交按钮
        const submitBtn = targetForm.querySelector('button[type="submit"]') || targetForm.querySelector('[type="submit"]');
        if (submitBtn) {
            submitBtn.click();
            
            // 等待POST页面加载完成后替换历史记录
            setTimeout(() => {
                history.replaceState(null, document.title, window.location.href);
            }, 1200); // 可根据页面实际加载速度调整延迟时间
        }
    }
})();

方案二:监听回退事件

通过监听popstate事件,当检测到回退到GET表单页面时,主动执行一次回退操作,直接跳过该页面。

示例代码:

// ==UserScript==
// @name        自动提交并处理回退
// @namespace   internal-form-handler
// @match       http://你的内部URL/*
// @grant       none
// @version     1.0
// @description 自动提交表单,回退时跳过GET页面
// ==/UserScript==

(function() {
    'use strict';

    // 自动提交逻辑
    const targetForm = document.querySelector('form[method="POST"]');
    if (targetForm) {
        const submitBtn = targetForm.querySelector('button[type="submit"]') || targetForm.querySelector('[type="submit"]');
        submitBtn?.click();
    }

    // 监听回退事件
    window.addEventListener('popstate', () => {
        // 检测是否回到了GET表单页面
        if (document.querySelector('form[method="POST"]')) {
            // 再次回退,跳过GET页面
            history.back();
        }
    });
})();

方案说明

  • 方案一的优势是不会出现GET页面闪现,体验更流畅;需要注意设置合适的延迟,确保POST页面已加载完成再执行替换。
  • 方案二无需等待页面加载,但回退时可能会短暂显示GET页面,适合页面加载速度较快的场景。

内容的提问来源于stack exchange,提问作者Archimedes Trajano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:40:31