Ich öffne viele Registerkarten, die für mich wichtig sind. Gibt es nicht eine einfachere Möglichkeit, etwas zu installieren, das eine TextEdit-Datei auf meinem Desktop erstellt, wobei alle URLs zu diesem Zeitpunkt geöffnet sind?
In der Vergangenheit habe ich SafariTabsListDs von Eelee verwendet, aber das scheint nicht mehr zu funktionieren.
Können Sie mir mit etwas helfen, mit dem ich die gewünschten Registerkarten nach dem Schließen wieder öffnen kann?
Der folgende Beispiel -AppleScript- Code schreibt die URL jeder Registerkarte jedes Fensters von Safari in eine Datei namens MyURLs.txt auf Ihrem Desktop :
set myURLs to {}
tell application "Safari" to set myURLs to the URL of every tab of every window
set text item delimiters to linefeed
set myURLs to myURLs as text
set text item delimiters to {}
if not myURLs is equal to "" then
do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs.txt"
end if
Um die URLs z. B. in MyURLs.txt zu öffnen , können Sie z. B. Folgendes verwenden:
set myURLs to {}
try
set myURLs to paragraphs of (do shell script "cat $HOME/Desktop/MyURLs.txt")
end try
if not myURLs is equal to {} then
repeat with thisURL in myURLs
open location thisURL
end repeat
end if
Hinweis: Der Beispiel- AppleScript- Code ist genau das und enthält keine zusätzliche Fehlerbehandlung , die möglicherweise angemessen ist. Es liegt in der Verantwortung des Benutzers, eine Fehlerbehandlung hinzuzufügen, die angemessen, erforderlich oder gewünscht ist. Sehen Sie sich die try- Anweisung und die error- Anweisung im AppleScript Language Guide an . Siehe auch Arbeiten mit Fehlern . Zusätzlich kann die Verwendung des Verzögerungsbefehls gegebenenfalls zwischen Ereignissen notwendig sein, z. B. mitdelay 0.5
dem geeignet eingestellten Wert der Verzögerung .
Listen Sie die URL aller Registerkarten im vordersten Fenster auf:
osascript -e{'set text item delimiters to linefeed','tell app"safari"to(url of tabs of window 1)as text'}
Listen Sie die URL aller Registerkarten in allen Fenstern auf:
osascript -e{'set text item delimiters to linefeed','tell app"safari"to(url of tabs of windows)as text'}
Listen Sie die URL und den Titel aller Registerkarten im vordersten Fenster auf:
osascript -e{'set o to""','tell app"safari"','repeat with t in tabs of window 1','set o to o&url of t&" "&name of t&"\n"',end,end,o}|sed \$d
Sie sollten sich zuerst die verfügbaren Optionen ansehen, die das Erforderliche tun können.
Wenn Sie befürchten, dass Sie eine Sitzung verlieren, wenn Sie Safari schließen, sollten Sie Folgendes tun: Öffnen Sie die Systemeinstellungen > Allgemein und deaktivieren Sie „Fenster schließen, wenn Sie eine App beenden“.
Jetzt können Sie Safari mit command+ Q& beenden, wenn Sie es später öffnen, erscheinen alle Registerkarten und Fenster, einschließlich derjenigen im privaten Modus.
Ein AppleScript kann auch die URL aller geöffneten Tabs in allen Fenstern in einer Textdatei speichern. Ein guter Ausgangspunkt ist:
Ich freue mich über die Antworten auf dieser Seite. Ich habe einen Dialog hinzugefügt, um dem Benutzer zu ermöglichen, das vordere Fenster von Safari oder alle Fenster auszuwählen. Ich hoffe, dies kann für jemanden nützlich sein. (Ich konnte das Datumspräfix nicht zum Laufen bringen.)
set currentDate to do shell script "date +%Y-%d-%m"
--display dialog currentDate
set theDialogText to "Write Safari tab URLs to a Desktop text file ...
Select only the foremost window, or all windows"
display dialog theDialogText buttons {"cancel", "window 1", "all windows"} default button "window 1" cancel button "cancel"
set BUTTON_Returned to button returned of result
set myURLs to {}
if BUTTON_Returned is "window 1" then
tell application "Safari" to set myURLs to the URL of every tab of (window 1)
end if
if BUTTON_Returned is "all windows" then
tell application "Safari" to set myURLs to the URL of every tab of (windows)
end if
set text item delimiters to linefeed
set myURLs to myURLs as text
set text item delimiters to {}
if not myURLs is equal to "" and BUTTON_Returned is "window 1" then
do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs.txt"
--set filename of "~/Desktop/MyURLs.txt" to currentDate & " " & "myURLs.txt"
end if
if not myURLs is equal to "" and BUTTON_Returned is "all windows" then
do shell script "echo " & myURLs's quoted form & "> $HOME/Desktop/MyURLs++.txt"
end if