1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | property targetTab: null
|
9 | property targetTabIndex: -1
|
10 | property targetWindow: null
|
11 |
|
12 | on run argv
|
13 | set theURL to item 1 of argv
|
14 |
|
15 | tell application "Chrome"
|
16 |
|
17 | if (count every window) = 0 then
|
18 | make new window
|
19 | end if
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | set found to my lookupTabWithUrl(theURL)
|
25 | if found then
|
26 | set targetWindow's active tab index to targetTabIndex
|
27 | tell targetTab to reload
|
28 | tell targetWindow to activate
|
29 | set index of targetWindow to 1
|
30 | return
|
31 | end if
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | set found to my lookupTabWithUrl("chrome://newtab/")
|
37 | if found then
|
38 | set targetWindow's active tab index to targetTabIndex
|
39 | set URL of targetTab to theURL
|
40 | tell targetWindow to activate
|
41 | return
|
42 | end if
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | tell window 1
|
48 | activate
|
49 | make new tab with properties {URL:theURL}
|
50 | end tell
|
51 | end tell
|
52 | end run
|
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 | on lookupTabWithUrl(lookupUrl)
|
59 | tell application "Chrome"
|
60 |
|
61 | set found to false
|
62 | set theTabIndex to -1
|
63 | repeat with theWindow in every window
|
64 | set theTabIndex to 0
|
65 | repeat with theTab in every tab of theWindow
|
66 | set theTabIndex to theTabIndex + 1
|
67 | if (theTab's URL as string) contains lookupUrl then
|
68 |
|
69 | set targetTab to theTab
|
70 | set targetTabIndex to theTabIndex
|
71 | set targetWindow to theWindow
|
72 | set found to true
|
73 | exit repeat
|
74 | end if
|
75 | end repeat
|
76 |
|
77 | if found then
|
78 | exit repeat
|
79 | end if
|
80 | end repeat
|
81 | end tell
|
82 | return found
|
83 | end lookupTabWithUrl
|