Я сделал очень простой AppleScript, чтобы закрывать вкладки в Safari. Проблема в том, что это работает, но не полностью. Только несколько вкладок закрыты. Вот код:
tell application "Safari"
repeat with aWindow in windows
repeat with aTab in tabs of aWindow
if [some condition is encountered] then
aTab close
end if
end repeat
end repeat
end tell
Я также пробовал этот скрипт:
tell application "Safari"
repeat with i from 0 to the number of items in windows
set aWindow to item i of windows
repeat with j from 0 to the number of tabs in aWindow
set aTab to item j of tabs of aWindow
if [some condition is encountered] then
aTab close
end if
end repeat
end repeat
end tell
... но тоже не работает (такое же поведение).
Я пытался сделать это на своей системе (MacBook Pro, январь 2008 г.), а также на Mac Pro G5 под Tiger, и сценарий завершился неудачно на обоих, хотя и с гораздо менее описательной ошибкой на Tiger.
Запуск сценария несколько раз закрывает несколько вкладок каждый раз, пока не остается ни одной, но всегда завершается ошибкой с той же ошибкой после закрытия нескольких вкладок. Под леопардом я получаю ошибку выхода за границы. Так как я использую быстрое перечисление (не использую «повторить от 0 до количества элементов в окнах»), я не вижу, как я могу получить ошибку выхода за границы этого ...
Моя цель - использовать Cocoa Scripting Bridge для закрытия вкладок в Safari из моего приложения Objective-C Cocoa, но Scripting Bridge не работает таким же образом. Не удаляемые вкладки отображаются в отладчике Xcode как NULL
, в то время как другие вкладки являются действительными объектами, из которых я могу получить значения обратно (например, их заголовок). На самом деле я сначала попробовал использовать Scripting Bridge, а затем сказал себе, почему бы не попробовать это прямо в AppleScript, и я был удивлен, увидев такие же результаты.
У меня должно быть явное упущение или что-то там ... (мне кажется, это ошибка в поддержке Safari AppleScript ...: S) Я использовал повторяющиеся циклы и быстрое перечисление Obj-C 2.0 для перебора коллекций раньше с нулевыми проблемами, так что я действительно не вижу, что здесь не так.
Кто-нибудь может помочь?
Заранее спасибо!