스크립트를 사용하여 다음을 수행 할 수 있습니다.
tell application "Safari"
set urls to URL of every tab of every window
end tell
실행하면, 모든 윈도우의 모든 탭의 모든 URL을 가져옵니다 (2 차원 목록)
Result:
{{"http://domain1", "http://domain2", ...}, {"http://domain3", "http://domain4", ...}, {...}}
그러나 가능합니다 :
tell application "Safari"
set (urls & name) to URL of every tab of every window
end tell
목록 대신 레코드를 얻는 방법 :
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"}, {...}}}
가능합니까, 아니면 사용해야합니까? repeat
?
답변
단일 객체 지정자로 레코드를 가져올 수는 없지만 목록을 가져올 수 있습니다.
tell application "Safari"
{URL, name} of tabs of windows
end tell
-- {{{"http://url1", "title 1"}, {"http://url2", "title 2"}}}
레코드의 경우 반복 루프를 사용할 수 있습니다.
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"}}