Функция ниже запускает JavaScript на каждой вкладке самого переднего окна в Chrome и объединяет выходные данные.Чтобы запустить JavaScript во всех окнах, замените window 1
на windows
.
xjss(){ osascript -e'on run {a}
set o to ""
tell app "Google Chrome" to repeat with t in (get tabs of window 1)
tell t to set o to o & (execute JavaScript a) & linefeed
end
end' -- "$1"; }
. JavaScript запускается только в самой передней вкладке:
xjs(){ osascript -e'on run {a}
tell app "Google Chrome" to tell active tab of window 1 to execute JavaScript a
end' -- "$1"; }
Вот аналогичные функции для Safari:
sjss(){ osascript -e'on run {a}
set o to ""
tell app "Safari" to repeat with t in (get tabs of window 1)
tell t to set o to o & (do JavaScript a) & linefeed
end
end' -- "$1"; }
sjs(){ osascript -e'on run {a}
tell app "Safari" to tell document 1 to do JavaScript a
end' -- "$1"; }
Поскольку некоторые версии Chrome выпущены в 2018 году, при запуске команды execute JavaScript
по умолчанию отображается ошибка, подобная этой:
78: 98: ошибка выполнения: Google Chrome получил ошибку: выполнение JavaScript через AppleScript отключено.Чтобы включить его, в строке меню перейдите в «Вид»> «Разработчик»> «Разрешить JavaScript из событий Apple».Для получения дополнительной информации: https://support.google.com/chrome/?p=applescript (12)
Safari имеет аналогичное предпочтение в «Разработка> Разрешить JavaScript из событий Apple», которое было отключено по умолчанию в macOS версии 10.11.5 (выпущено в 2016-05-16).