Kontrollera Safari med AppleScript

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2007-02-25 16:53

Jag har gjort ett litet script som är tänkt att fungera som en "genväg". Det går in på en sida och kallar på ett javascript vilket gör att en ny sida öppnas i ett nytt fönster, sedan stänger scriptet det utsprungliga fönsret så att endast det som öppnades via javascriptet blir kvar. Detta ser ut som följer:

tell application "Safari"
	if document 1 exists then
		close document 1
	end if
	open location "http://www.adress.se/"
	delay 1
	do JavaScript "javascript:openSidan()" in document 1
	close document 2
end tell

If-satsen i början är till för att stänga det "extra" fönstret som blir om Safari inte redan är öppet, i vilken startsidan visas.
Det jag undrar är främst om det på ett smartare sätt går att kontrollera hurvida Safari redan är öppet och om det på något sätt går att hålla förloppet fram till att det önskvärda fönstret visas "dolt", så att man slipper se ett gäng Safarifönster blinka till?

  • Medlem
  • Mölndal
  • 2007-02-25 19:20

Så vitt jag vet utförs AppleScript alltid "som om användaren själv klickade", och det blir svårt att göra saker i bakgrunden. Men vi kan alltid hoppas att jag har fel.

  • Medlem
  • Stockholm
  • 2007-02-25 22:07
Ursprungligen av memark:

Så vitt jag vet utförs AppleScript alltid "som om användaren själv klickade", och det blir svårt att göra saker i bakgrunden. Men vi kan alltid hoppas att jag har fel.

Misstänkte att det kunde vara så Men då kvarstår i alla fall frågan om hurvida man kan kontrollera om en applikation är öppen eller ej?

En variant kan vara följande...

on idle
tell application "System Events"
if name of every process contains "Safari" then
--Kod att utföra om Safari är öppet
--Kontrollerar var 10 sekund om Safari är aktivt

end if
end tell
return 10
end idle

Spara detta som ett program och kryssa i "Lämna manus öppet"
Ligger som ett program och då Safari aktiveras utförs den tänkta koden.

Hoppas att det kan vara till hjälp!

/Mattias

1
Bevaka tråden