Skip to content

JS 注入

☕ 用 `--js` 在页面执行自定义 JavaScript。

标志

标志说明
--js要执行的 JavaScript 代码
--js-file包含 JS 的文件路径
--run-js-before在页面加载前执行(默认加载后)

示例

bash
# 执行内联 JS
snir scan example.com --js "document.title"

# 从文件
snir scan example.com --js-file inject.js

# 加载前执行
snir scan example.com --js-file preload.js --run-js-before

执行时机

JSBefore / 导航 / JSAfter / 截图四个阶段的执行时序:

  • 默认:页面加载后执行
  • --run-js-before:加载前执行,适合提前注入 hook、改写函数、关闭弹窗

典型用例

实战配方

目的代码
滚动到底触发懒加载--js "window.scrollTo(0, document.body.scrollHeight)"
关闭 Cookie 同意弹窗--js "document.querySelector('.consent')?.remove()"
改 DOM 后再截图--js-file modify.js
提取页面数据--js "document.title"(结果入 console)

弹窗遮挡是截图失败的常见原因,--js 提前移除是低成本解法。

与交互动作的区别

自由 JS vs 结构化动作

方式灵活度异步处理适合
--js(CLI)高,任意代码需自己处理一次性脚本注入
WithActions(SDK)结构化动作框架托管等待复杂交互流程(点击→输入→等待→截图)

简单注入用 --js,多步交互用 SDK 的 WithActions,见 JS 与交互

下一步

基于 MIT 许可发布