Hinweis:
Ab Firefox v50 können Sie Firefox standardmäßig für das Öffnen von URLs in einem neuen Fenster verwenden, indem Sie Open new windows in a new tab instead
auf der Registerkarte General
der Firefox-Einstellungen deaktivieren.
Beachten Sie jedoch, dass dies eine persistente Einstellung ist, die alle URLs betrifft, die von außerhalb von Firefox geöffnet wurden.
Die folgende Lösung ist möglicherweise immer noch von Interesse, wenn Sie sich nicht auf den Status dieser Einstellung verlassen möchten.
(Leider gibt es aufgrund der eingeschränkten AppleScript-Unterstützung von Firefox keine ähnlich robuste Lösung für das ständige Öffnen auf einer Registerkarte , unabhängig vom Status der Einstellung.
Hier ist eine robustere Lösung:
ist nicht auf eine feste Verzögerung angewiesen und
ist sprachneutral (ebenso wie der Tastendruck-sendende Ansatz); es funktioniert auch mit lokalisierten Namen für die Menüs und Befehle (z. B. "Datei" für "Datei", ...)
Da GUI-Scripting jedoch zum programmatischen Klicken auf einen Menüeintrag verwendet wird, müssen Sie den -Aufruf autorisieren Anwendung für den assistiven Zugriff zuerst (eine einmalige Aktion, die Administratorrechte erfordert) - wenn Ihr Skript beispielsweise von einem Terminal ausgeführt wird, müssen Sie Terminal.app
autorisieren, aber auch Script Editor.app
muss es sein autorisiert, wenn Sie Ihr Skript während der Entwicklung ausführen möchten.
Hinweis:
Wenn Firefox reagiert, sollte dies normalerweise funktionieren. Der Code könnte jedoch verbessert werden, indem Timeouts für die Warteschleifen implementiert werden.
Firefox ist nicht das schnellste beim Öffnen des neuen Fensters, daher wird Firefox zuerst aktiviert, und das neue Fenster erscheint erst ungefähr eine Sekunde später.
Das neue Fenster hat immer eine leere erste Registerkarte und die URL wird auf der Registerkarte 2. geöffnet.
Eine Randnotiz für das ungewöhnlich aussehende tell application "System Events" to tell application process "Firefox"
Konstrukt:
tell application "Firefox"
). System Events
-Anwendung ( tell application "System Events"
) ausgeführt werden, und in diesem Kontext muss der Firefox -Prozess als Ziel verwendet werden ( tell application process "FireFox"
). Während Sie zwei verschachtelte tell
-Blöcke schreiben könnten, werden sie hier aus Bequemlichkeit und Kürze zu einem einzigen Block zusammengefasst. Ich bin mit AppleScript nicht ganz vertraut, aber ich wollte ein brandneues Standardfenster öffnen. Hier ist eine Methode, die funktioniert:
%Vor%Fügen Sie optional folgende Zeilen hinzu, um sich auf das neue Fenster zu konzentrieren:
%Vor%Dies öffnet ein neues Standardfenster. Es könnte einen besseren Weg geben.
Tags und Links firefox applescript