-
-
Save prenagha/3153606 to your computer and use it in GitHub Desktop.
-- | |
-- open currently open URL in Safari in Chrome | |
-- forked from https://gist.github.com/3151932 | |
-- | |
property theURL : "" | |
tell application "Safari" | |
set theURL to URL of current tab of window 1 | |
end tell | |
if appIsRunning("Google Chrome") then | |
tell application "Google Chrome" | |
if (count of (every window where visible is true)) is greater than 0 then | |
-- running with a visible window, ready for new tab | |
else | |
-- running but no visible window, so create one | |
make new window | |
end if | |
end tell | |
else | |
tell application "Google Chrome" | |
-- chrome app not running, so start it | |
do shell script "open -a \"Google Chrome\"" | |
end tell | |
end if | |
-- now that we have made sure chrome is running and has a visible | |
-- window create a new tab in that window | |
-- and activate it to bring to the front | |
tell application "Google Chrome" | |
tell front window | |
make new tab with properties {URL:theURL} | |
end tell | |
activate | |
end tell | |
on appIsRunning(appName) | |
tell application "System Events" to (name of processes) contains appName | |
end appIsRunning |
Thanks - this is really useful. Only issue I have is that if Chrome is running without any open windows, the script doesn't work.
Fixed to handle the issue mentioned by @Nigelw
Fix idea from http://www.tuaw.com/2011/03/14/use-applescript-to-open-current-safari-url-in-google-chrome/
Fix works like a charm. Thanks!
Another possible revision: if Chrome has a tab or two, but isn't running, then invoking the script doesn't add a tab but replaces the last-visible tab.
(I think it's extremely useful as it is, as evidenced by my version being less complete than yours, but I thought I'd point out this possible shortcoming :)
@timarnold you must have chrome set to "continue where i left off". i have it set to always open blank. let me see if i can fix
@timarnold @Nigelw ok now even better than before. handles all cases I could come up with. let me know how it works.
This is great. Works for me in all cases I'm testing. Thanks for the updates!
When I launch the script it opens Chrome... but by first launching Parallels Desktop, and then Chrome for Windows [ugh]. Any thoughts on how to fix this?
Ha! Renaming every instance of "Google Chrome" to "Google Chrome.app" fixed it.
Great snippet, thanks.
And now it's back to doing the same thing again where it preferentially opens the page in Chrome for Windows.
Thanks for this @prenagha. I’ve just forked it, mostly to check if the current Chrome tab is empty (and if so to open the URL there).
@donschaffner My fork uses Chrome’s bundle id for everything except checking if it’s running, so that might solve your problem with Parallels & Chrome for Windows. (Unfortunately I can’t test this myself.)
original idea from https://gist.github.com/3151932