By Alvin Alexander. Last updated: August 10, 2018
Well, I set out to write a simple tip on how to activate a Mac application using AppleScript, and I ended up writing a program to open a list of URLs in separate tabs in Safari using AppleScript. (Yeesh, I really took a detour. Oh, well.)
Without any further ado, here's the source code for this AppleScript program:
-- an applescript program that opens a list of urls in separate tabs.
-- opens safari, then loads each url in a separate tab.
-- written by alvin alexander, devdaily.com
-- no rights reserved, feel free to copy and improve this program.
set urlList to {"http://www.macintouch.com/", "http://www.macnn.com/", "http://www.macworld.com/", "http://www.thinksecret.com/", "http://www.tuaw.com/"}
set numURLs to (count urlList)
tell application "Safari"
activate
-- create all the tabs that are needed
tell application "System Events"
-- enter the url in the open window
keystroke (item 1 of urlList)
key code 36
repeat with i from 2 to (numURLs)
-- for each additional url, first create a tab
tell process "Safari"
click menu item "New Tab" of menu "File" of menu bar 1
end tell
-- now enter the url
keystroke (item i of urlList)
key code 36
end repeat
end tell
end tell
Brief description of the code
Here's a brief description of what this AppleScript program does:
urlListis a simple list with the URLs I want Safari to open.- The
repeatstatement starts the loop. - I'm clicking File :: New Tab using the System Events because I can't figure out how to get this to work by calling Safari directly. (I'm currently using Safari 3.0.3.)
- The
keystrokecommand types the URL into Safari. key code 36is needed to hit the [Enter] key.
Again, I had to take a few extra steps here because I couldn't script the tabs in Safari directly. Ideally code like this would have worked inside the tell application "Safari" statement:
tell window 1 make new tab end tell
Hopefully that support will be available in the future, or, if I'm mistaken, please send me an email and I will correct this program.

