在快捷指令 (Shortcuts) 中添加一个“运行 AppleScript (Run AppleScript)”动作;
(*
Safari Auto-Scroll (minimal design)
-----------------------------
1) 在开始时,简易对话框询问:滚动速度(s)、方向(上/下)。
2) 在 Safari 当前页里通过 JS 的 window.scrollBy(...) 实现自动滚动。
3) 循环滚动直到用户在 Shortcuts 中点击“停止”。
4) 若要加速/减速/调转方向,只需停止后再次运行脚本,改参数即可。
*)
on run {input, parameters}
-- ========== 1. 简易对话框获取基本设置 ==========
-- 询问滚动速度:间隔秒数(越小越快)
-- 这里给出默认值 0.2 秒
display dialog "请输入滚动速度(秒):\n(数值越小滚动越快,建议 0.1~0.5)" default answer "0.2" with title "滚动速度设置" buttons {"确定", "取消"} default button 1 cancel button 2
set speedText to text returned of result
set scrollInterval to speedText as number
-- 询问方向:上 or 下
set directionChoice to choose from list {"下", "上"} with prompt "选择滚动方向" with title "滚动方向"
if directionChoice is false then
return "用户取消" -- 用户点“取消”时
end if
set scrollDirection to item 1 of directionChoice
-- ========== 2. 检查 Safari 并准备滚动 ==========
tell application "Safari"
if not (exists document 1) then
display alert "Safari 中没有打开网页,请先在 Safari 打开一个网页。"
return "未执行滚动"
end if
end tell
-- ========== 3. 执行滚动循环 ==========
display dialog "开始滚动。\n可在 Shortcuts 中点击“停止”随时结束。" buttons {"OK"} default button 1
(*
这里设置单次的滚动像素值(步长)
你可以根据需要做成可再询问的参数,也可写死一个默认值。
设为正数:向下滚动
设为负数:向上滚动
*)
if scrollDirection is "下" then
set scrollStep to 20
else
set scrollStep to -20
end if
-- 无限大循环(999999次)
set maxRepeat to 999999
repeat maxRepeat times
tell application "Safari"
do JavaScript ("window.scrollBy(0," & scrollStep & ");") in document 1
end tell
delay scrollInterval
end repeat
return "完成滚动"
end run
弄好脚本,退出来回到快捷指令界面,点击运行,打开要看的帖子,选择速度方向就可以了,不要滑了就去快捷指令停止就行了