Esiste in AppleScript un modo per utilizzare "X di ogni" per ottenere più proprietà di ogni oggetto per creare un record?

1

È possibile con lo script:

tell application "Safari"
    set urls to URL of every tab of every window
end tell

quando esegui, ottieni tutti gli URL di ogni scheda di ogni finestra (elenco bidimensionale)

Result:
 {{"http://domain1", "http://domain2", ...}, {"http://domain3", "http://domain4", ...}, {...}}

Ma è possibile con:

tell application "Safari"
    set (urls & name) to URL of every tab of every window
end tell

per ottenere un record anziché un elenco:

Result:
 {{{url: "http://domain1", name: "domain1 - foo"}, {url: "http://domain2", name: "domain2 - bar2"}, {...}}, {{url: "http://domain3", name: "domain3 - foo3"}, {url: "http://domain4", name: "domain4 - bar4"}, {...}}}

È possibile o dovrei usare solo repeat ?

    
posta static 24.10.2013 - 21:47
fonte

1 risposta

2

Non è possibile ottenere un record con un singolo identificatore di oggetto, ma è possibile ottenere un elenco:

tell application "Safari"
    {URL, name} of tabs of windows
end tell
-- {{{"http://url1", "title 1"}, {"http://url2", "title 2"}}}

Per un record, puoi usare un ciclo ripetuto:

set r to {}
tell application "Safari"
    repeat with t in tabs of windows
        set end of r to {|url|:URL of t, |name|:name of t}
    end repeat
end tell
r
-- {{|url|:"http://url1", |name|:"title 1"}, {|url|:"http://url2", |name|:"title 2"}}
    
risposta data 25.10.2013 - 08:05
fonte

Leggi altre domande sui tag