0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Controlling the Safari browser via the CLI using JavaScript code

0
Last updated at Posted at 2026-03-17

safari

js

在当前网页注入并执行 JS(弹出提示框)

osascript -l JavaScript -e 'var app = Application("Safari"); app.doJavaScript("alert(\"Hello!这是来自终端的控制指令。\");", { in: app.windows[0].currentTab })'

获取当前网页的基础信息

# 获取当前标签页的 URL
osascript -l JavaScript -e 'Application("Safari").windows[0].currentTab.url()'

# 获取当前标签页的 Title
osascript -l JavaScript -e 'Application("Safari").windows[0].currentTab.name()'

提取网页里的特定数据 (DOM 操作)

可以执行更复杂的 DOM 查询。比如,抓取当前页面所有的 <h2> 标题文字,并返回给终端。

osascript -l JavaScript -e 'var app = Application("Safari"); app.doJavaScript("Array.from(document.querySelectorAll(\"h2\")).map(el => el.innerText).join(\" | \");", { in: app.windows[0].currentTab })'

alias

  safari_js() {
    osascript -l JavaScript -e 'function run(argv) { var app = Application("Safari"); return app.doJavaScript(argv[0], { in: app.windows[0].currentTab }); }' "$1"
  }
safari_js "alert('封装成功!')"

safari_js "document.title"

safari_js 'window.location.href'
safari_js 'document.URL'

chrome

chrome 也能这么操作

chrome_js() {
  osascript -l JavaScript -e 'function run(argv) { var app = Application("Google Chrome"); return app.windows[0].activeTab.execute({ javascript: argv[0] }); }' "$1"
}
chrome_js 'alert("Hello from Terminal to Chrome!")'

chrome_js 'window.location.href'
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?