* 20190221, 구글 크롬이 완전히 종료된 상태에서 애플스크립트를 실행하면 new tab을 만들고 또 다시 탭을 만드는 문제가 있어 코드를 수정하였습니다.
맥당에서 어떤 분이 BTT 설정방법 문의 라는 질문을 올려주셔서 만들어 보았습니다.
저도 머리로는 "맥에선 사파리가 최고"라 생각하지만 플러그인이나 지원 페이지 등의 문제로 크롬으로 자주 열게 되더라구요
BTT(를 포함한 애플스크립트를 단축키로 실행할 수 있게 해주는 프로그램들)로 다음 애플스크립트를 실행하게 해주시면 됩니다.
property theURL : ""
tell application "Safari"
set theURL to URL of current tab of window 1
end tell
tell application "Google Chrome"
if (application "Google Chrome" is not running) or (not (exists window 1)) then
reopen
set URL of active tab of window 1 to theURL
else
tell window 1
make new tab with properties {URL:theURL}
end tell
end if
activate
end tell
크롬에 열린 창이 없으면 크롬을 켠 뒤 크롬으로 열어주고, 열려있는 창이 있으면 새 탭을 만들어서 크롬으로 열어주는 코드입니다.
코드는 https://stackoverflow.com/questions/7221087/applescript-to-get-the-url-from-safari 등에서 참조했습니다.
가령, 저는 터치바에 "Open in Chrome" 버튼을 추가하기 위해 다음과 같이 설정했습니다.
이렇게 설치하고 나면, 다음과 같이 터치바에 "Open in Chrome" 버튼이 생기고, 이걸 누르면 현재 열려있는 사파리 창이 크롬으로 열립니다 +_+
버그나 기타 개선사항이 필요하시면 댓글 남겨주세요!
저도 구글링해가며 만든 코드다 보니 제가 해결하지 못할 가능성이 농후하지만, 멋진 쓰앵님들이 도와주실 것이라 믿습니다 ㅎㅎ..
가령, 현재 활성화된 탭을 크롬에서는 active tab, 사파리에서는 current tab 이라 부릅니다.
따라서, firefox에서도 현재 열려있는 tab이 어떤 것인지 확인한 다음 코드를 수정해서 사용하심 될 것 같습니다.
변수명 확인하는 방법은, 저는 아래 링크에서 알려준 대로 하면 열 수 있는 애플스크립트 사전에서 확인했습니다.
https://apple.stackexchange.com/questions/46521/how-do-i-find-out-the-applescript-commands-available-for-a-particular-app
크롬에서 사파리로 여는건 변수를 적당히 바꿔주시면 될 것 같습니다.
property theURL : ""
tell application "Google Chrome"
set theURL to URL of active tab of window 1
end tell
tell application "Safari"
if not (exists window 1) then
reopen
set URL of current tab of window 1 to theURL
else
tell window 1
make new tab with properties {URL:theURL}
end tell
end if
activate
end tell
이런 식으로 수정하니 대충 돌아가는 것 같긴 한데 BTT 단축키로는 실행이 안되고 Key sequence 로는 실행이 되네요...?
유용하게 쓰겠습니다 감사합니다!!!
그런데 크롬이 열려있을 땐 새 창에서 잘 실행되는데, 크롬이 꺼저있을땐 빈 탭을 하나 만들고 새 탭에서 URL을 여네요. 왜 이런 걸까요?
이런식으로 말이죠.
if 문에 `running` 옵션을 추가하여 말씀해주신 문제를 해결할 수 있습니다.
본문에도 함께 수정하겠습니다
property theURL : ""
tell application "Safari"
set theURL to URL of current tab of window 1
end tell
tell application "Google Chrome"
if (application "Google Chrome" is not running) or (not (exists window 1)) then
reopen
set URL of active tab of window 1 to theURL
else
tell window 1
make new tab with properties {URL:theURL}
end tell
end if
activate
end tell
애플 기간 동기화가 편해서 사파리를 주력으로 사용하고 있는데, 일부 페이지는 크롬이 필요했고 번거로운 절차를 거쳤는데, 이 스크립트 한방에 해결되었습니다!!!
👍