我做了一個非常簡單的AppleScript關閉標籤在Safari。問題是,它有效,但不完全。 只有幾個選項卡關閉。下面的代碼:如何使用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年1月)上,以及在Tiger下的Mac Pro G5上,腳本都失敗了,儘管Tiger的描述性錯誤更少。
運行腳本幾次關閉幾個選項卡每個時間,直到沒有剩下,但總是關閉一些標籤後失敗,出現同樣的錯誤。在豹下,我得到了一個界限錯誤。由於我使用快速枚舉(不使用「重複從0到Windows中的項目數」),我不明白我怎麼能得到一個越界錯誤,這...
我的目標是使用Cocoa Scripting Bridge從我的Objective-C Cocoa應用程序中關閉Safari中的標籤,但Scripting Bridge以相同的方式失敗。非消除標籤顯示爲在Xcode調試NULL
,而其他選項卡是有效對象從中我可以得到值回(如他們的稱號)。實際上,我首先嚐試了Scripting Bridge,然後告訴自己爲什麼不直接在AppleScript中嘗試這一點,我驚訝地看到了相同的結果。我似乎有一個明顯的遺漏或在那裏的東西......(似乎是Safari AppleScript支持給我的錯誤:S)我已經使用重複循環和Obj-C 2.0快速枚舉來遍歷之前收集的零問題,所以我真的沒有看到這裏有什麼問題。
任何人都可以幫忙嗎?
在此先感謝!
是......你是對的,這是一個解決方案,關閉所有標籤頁,但我想我沒有問正確的問題。我的目標是基於他們的頭銜有條件地關閉標籤頁,所以我必須通過整個事情迭代和標籤的標題文字的現有的字典進行比較。 – Form 2010-03-23 20:37:07
那裏我修改了我的問題。 – Form 2010-03-23 20:40:15
我修改了我的答案 – mcgrailm 2010-03-23 21:13:45