스크립트를 사용하여 다음을 수행 할 수 있습니다.
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
?
{|safari|: {{|window_1|: {|url|: "http://url1", |name|: "title 1"}, {|url|:"http://url2", |name|:"title 2"}},{|window_2|: {|url|: "http://url3", |name|: "title 3"}, {|url|:"http://url4", |name|:"title 4"}}}}
? 그래서 레코드를 json으로 변환 할 수 있습니다 (예 :JSON Helper
) 아직도 사파리 창문 구조가 있습니까? 나는 모든 것을 문자열 기반 (레코드 /리스트 기반이 아닌, 내가 갖고 싶은 것)으로 만들기위한 스크립트를 작성했으며, 3 줄의 서브 루틴이있는 약 200 줄의 코드이며, 나 자신조차도보기 흉하게 보인다.