tags:

views:

51

answers:

2

I need to open multiple Safari (or open the tab is OK) based on the read result.

For example, if a file has

http://a.com
http://b.com

I want to open a.com and b.com using Safari.

How can I do that with Mac/AppleScript?

Maybe I can run python calling "open -a Safari "http://a.com", but I guess AppleScript is the tool for this kind of job.

+2  A: 

not sure about python but this will read a text file and open windows let me see if I can get tabs for you though set locations to paragraphs of (read (choose file with prompt "Pick text file containing urls")) repeat with aline in locations if length of aline is greater than 0 then tell application "Safari" make new document at end of documents set URL of document 1 to aline end tell end if end repeat

EDIT:

Ok this is better and it opens them in tabs of a single window

  set locations to paragraphs of (read (choose file with prompt "Pick text file containing urls"))
  tell application "Safari"
    activate
    set adoc to make new document
  end tell
  repeat with aline in locations
    if length of aline is greater than 0 then
        tell application "Safari" to make new tab at end of window 1 with properties {URL:aline}
    end if
  end repeat

New Addtion

this is yet another way based on regulus6633's post in conjunction with mine

 set locations to paragraphs of (read (choose file with prompt "Pick text file containing urls"))
 repeat with aLocation in locations
    tell application "Safari" to open location aLocation
 end repeat
mcgrailm
Thanks, it works like a charm.
prosseek
+2  A: 

If you want it to specifically open the links in Safari then mcgrailm's solution is good. However, you don't need the Finder for the first part so take that code out of the Finder tell block. There's no need to tell the Finder to do something that applescript can do itself.

However, you probably want to open the links in whatever browser is the user's default browser. It may be Safari or Firefox etc. You can do that with the "open location" command. So something like this is probably what you want...

set theFile to choose file with prompt "Pick text file containing urls"
set locations to paragraphs of (read theFile)

repeat with aLocation in locations
    try
        open location aLocation
    end try
end repeat
regulus6633
good point I don't need the finder... nice work I like it
mcgrailm