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

能否通过命令行在Firefox/Chrome浏览器中设置localStorage?

原生的 open 命令本身不支持直接操作浏览器的 localStorage 接口,因为 open 仅负责唤起应用并传入基础启动参数,浏览器没有内置接收 localStorage 配置的专用启动参数,所以你示例里直接在命令后拼接 setLocalStorage 的写法无法原生实现。以下是两种成熟的近似实现方案,完全可以覆盖你的需求:

方案1:自定义跳板页封装(最接近你想要的命令行调用体验)

你可以通过一个本地静态跳板页中转,封装成自定义shell命令后调用体验和你的预期几乎一致:

  • 首先创建本地跳板HTML文件,比如存储为 ~/.scripts/launch-with-ls.html,内置localStorage设置和自动跳转逻辑:
<!DOCTYPE html>
<script>
  const params = new URLSearchParams(window.location.search)
  const targetUrl = params.get('target')
  // 批量解析并设置localStorage
  params.getAll('lsPair').forEach(pair => {
    const [key, value] = pair.split('|||')
    localStorage.setItem(key, value)
  })
  // 跳转至目标站点
  window.location.replace(targetUrl)
</script>
  • 把自定义命令写入你的shell配置文件(.zshrc/.bashrc):
function open-with-ls() {
  local browserName=$1
  local target=$2
  shift 2
  local lsParams=""
  # 拼接所有localStorage键值对参数
  for pair in "$@"; do
    lsParams="${lsParams}&lsPair=${pair}"
  done
  # 替换为你自己的跳板页实际路径
  local jumpPagePath="file:///Users/你的用户名/.scripts/launch-with-ls.html"
  open -a "$browserName" -g "${jumpPagePath}?target=${target}${lsParams}"
}
  • 配置完成后重载shell,就可以直接用如下命令调用:
open-with-ls "Google Chrome" http://localhost:3000 "bla|||bla" "userToken|||xxx123"
方案2:浏览器自动化脚本(适合更复杂的操作场景)

如果除了设置localStorage之外还需要其他页面交互操作,可以用自动化工具实现:

  • 轻量方案(仅macOS可用):用AppleScript控制浏览器执行指定JS逻辑,示例脚本如下:
tell application "Google Chrome"
    open location "http://localhost:3000"
    delay 0.5 -- 等待页面加载完成,可根据实际情况调整
    tell active tab of front window
        execute javascript "localStorage.setItem('bla', 'bla')"
    end tell
end tell

保存为.scpt文件后直接用 osascript 脚本路径 即可执行,也可以封装为shell命令。

  • 跨平台方案:用Playwright/Puppeteer这类自动化工具写极简脚本,示例代码如下:
// launch.js
const { chromium } = require('playwright')
const [targetUrl, lsKey, lsValue] = process.argv.slice(2)
;(async () => {
  const browser = await chromium.launch({ headless: false })
  const page = await browser.newPage()
  await page.goto(targetUrl)
  await page.evaluate((key, val) => localStorage.setItem(key, val), lsKey, lsValue)
})()

安装Playwright依赖后直接用 node launch.js http://localhost:3000 bla bla 即可调用。

注意事项

  • 所有方案都遵循浏览器同源策略,只能给对应域名的站点设置localStorage,跨域设置不会生效
  • 用跳板页方案时注意对键值里的特殊符号做URL转义,避免破坏参数结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:45:03