Я выбрал немного другой подход к @wch1zpink
.В приведенном ниже сценарии вы можете редактировать и добавлять свойство URLs
, которое будет определять, какие вкладки открывать, сохраняя их в верхней части сценария и отдельно от основной части кода.Вы можете предоставить бессмысленные URL-адреса, если хотите, поскольку они корректно обрабатываются сценарием.
Я также выбрал максимизировать окно, а не переходить в полноэкранный режим, но если вы предпочитаете полноэкранный режим, тогда это легко сделать, и я включил фрагмент в конце, чтобы продемонстрировать чистый способ достижения этого.
property URLs : {"https://google.com", ¬
"https://dropbox.com", ¬
"https://imdb.com", ¬
"https://bbc.co.uk", ¬
"foobar blah blah", ¬
"https://disney.com"}
property errorPage : "safari-resource:/ErrorPage.html"
property time : 15 -- time (seconds) between tab switches
tell application "System Events" to set screenSize to ¬
the size of scroll area 1 of process "Finder"
tell application "Safari"
make new document with properties {URL:the first item in the URLs}
tell the front window
set W to it
repeat with URL in the rest of the URLs
make new tab with properties {URL:URL}
end repeat
set the bounds to {0, 0} & the screenSize
activate
tell (a reference to the current tab) to repeat
delay my time
if not (W exists) then return
set N to the number of tabs in W
try
set contents to tab (index mod N + 1) in W
end try
if its URL = errorPage then close
end repeat
end tell
end tell
Другое свойство, которое вы можете установить, это time
, который определяет, как долго (в секундах), чтобы приостановить на каждой вкладке, в настоящее время установите 15 секунд.Вкладки вращаются по очереди, но делают это непрерывным циклом, пока вы не закроете окно.Любые вкладки с бессмысленными URL-адресами немедленно закрываются непосредственно перед тем, как попасть в фокус, поэтому переход к следующей разумной вкладке на самом деле происходит плавно, и вы не заметите закрытия.
Вы по-прежнему можете открывать новые вкладки, как вам угоднов пределах 15-секундного окна), и вы можете вручную переключаться на любую вкладку.Процесс будет продолжен с любой вкладки, выбранной вами в качестве новой отправной точки.
Полноэкранный режим
В настоящее время сценарий устанавливает размер окна на максимальную область, доступную на вашем экране, которая вв современных версиях macOS следует учитывать строку меню и закреплять их, не затеняя их.
Если вы предпочитаете полноэкранный режим, то вам следует заменить эту строку:
set the bounds to {0, 0} & the screenSize
на следующую:
tell application "System Events" to set value of attribute ¬
"AXFullScreen" of front window of process "Safari" to true
Строго говоря, вы должны попытаться расположить эту строку за пределами блока tell application "Safari"
, разделив блок Safari на две части;выход из первого блока для включения полноэкранного режима;затем повторно входя во второй блок.Но Safari не умрет, если вы не сделаете этого, поэтому будет достаточно простого вырезания и вставки, который обменивает одну строку на другую, если вы понимаете, что это будет считаться ленивой и плохой формой.