xbrowser 中文文档 下载 App

手写自定义脚本 — 从零写一个 JS 脚本跑在网页上

什么时候需要自己写脚本

场景:

创建新脚本

  1. 设置 → 用户脚本 → 添加脚本 → 新建脚本
  2. 填写以下字段:
字段说明
脚本名称出现在脚本列表里的名字,自己定
脚本描述一句话说明这个脚本做什么
匹配规则指定脚本在哪些页面执行(@match / @include / @exclude)
JavaScript 代码区实际执行的 JS 代码
执行时机页面加载完成时?还是 DOM ready 时?

最简单的脚本示例

比如你想在打开 example.com 时弹个提示框:

alert('XBrowser 自定义脚本已运行!');

匹配规则设成:

@match https://www.example.com/*

保存、启用,然后打开 example.com 就能看到弹窗。

匹配规则写法

@match(推荐)

标准格式,精确匹配 URL 模式:

@match https://*/*           ← 所有 HTTPS 页面
@match https://*.baidu.com/* ← 百度旗下所有页面
@match *://*/*               ← 所有页面(含 http/https)

@include

更宽松的模式匹配,支持通配符和正则的简化形式。XBrowser 对这两种都支持,但推荐用 @match 更清晰。

@exclude

排除某些页面。比如你想让脚本在所有页面跑,但排除百度:

@match *://*/*
@exclude https://*.baidu.com/*

执行时机

XBrowser 提供了几个执行时机选项:

时机说明
文档开始加载页面还没渲染就执行,适合早改 DOM
DOM 就绪后DOM 树构建完成但图片等资源可能还在加载,够用的默认值
文档加载完成页面所有资源(图片、CSS、JS)都加载完,最慢

大多数脚本用「DOM 就绪后」就够。

调试小技巧

TamperMonkey 风格的自定义脚本

如果你想在自定义脚本里用 GM_* 函数(跨域请求、持久化存储等),XBrowser 也支持。把代码包装在标准 TamperMonkey 头部里即可:

// ==UserScript==
// @name         我的脚本
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

// 脚本内容写在这里

这样就和 Greasy Fork 上的脚本格式完全一致了。

相关