У меня есть несколько окон Safari для организации вкладок. Обычно у меня есть несколько вкладок в каждом окне.
Когда я нажимаю на ссылку из приложения, отличного от Safari, ссылка открывается на новой вкладке в Safari, поскольку Safari — мой браузер по умолчанию.
Проблема в том, что он часто открывается в окне Safari, которое в настоящее время свернуто или которое я в настоящее время не использую. Поэтому он не открывает ссылку в моем основном, активном, текущем окне (в основном, в том, которое я использовал последним). Вместо этого он выбирает свое собственное «окно по умолчанию» для открытия ссылок, которое может быть окном, которое я даже не использую.
Однако я хотел бы, чтобы эти ссылки всегда открывались в окне, которое я использовал последним, а не в окне, которое я не использую. Можно ли сделать так, чтобы ссылки всегда открывались в последнем активном окне, которое вы использовали, или, по крайней мере, установить окно «по умолчанию», которое будет открывать новые ссылки?
В настоящее время я использую macOS Sierra 10.12.1 с версией Safari по умолчанию, которая поставляется с ней.
Это можно сделать с помощью приложения AppleScript, которое открывает ссылку в Safari и делает это приложение браузером по умолчанию.
Во время тестирования я нашел две версии: либо открывать в новых окнах, либо в новых вкладках, если в текущем пространстве уже есть окно.
Откройте Script Editor.app (или даже лучше Script Debugger)
Если вы хотите, чтобы ссылки открывались в новом окне, используйте этот
on open location theURL
tell application "Safari"
make new document with properties {URL:theURL}
activate
end tell
end open location
on open location theURL
tell application "System Events"
tell process "Safari"
try
set frontWinName to name of window 1
on error
my openNewWindow(theURL)
return
end try
end tell
end tell
tell application "Safari"
try
tell (first window whose name is frontWinName and miniaturized is false)
set current tab to make new tab with properties {URL:theURL}
activate
end tell
on error
my openNewWindow(theURL)
end try
end tell
end open location
on openNewWindow(theURL)
tell application "Safari"
make new document with properties {URL:theURL}
activate
end tell
end openNewWindow
Сохранить как приложение
Если вы не хотите, чтобы приложение отображалось в доке
Щелкните правой кнопкой мыши приложение, перейдите в пакет и найдитеInfo.plist
Добавьте это вInfo.plist
<key>LSUIElement</key>
<true/>
Установите приложение в качестве браузера по умолчанию (я использовал RCDefaultApp).
Если вы хотите увидеть, насколько раздражающим является поведение ссылки по умолчанию в macOS, я предлагаю через несколько часов вернуться к Safari в качестве браузера по умолчанию ...
Я все еще на 10.14.6 и не знаю возможных ограничений в Каталине.
System Preferences/Settings > Security & Privacy
. Я не смог заставить это запускаться без какой-либо комбинации редактирования сценария для вызова системных событий при запуске (для тестирования), повторного создания приложения через редактор сценариев и запуска его вручную, а также запуска приложения вручную, чтобы вызвать Export > App
это . Более систематический подход к получению надлежащих разрешений был бы долгожданным обновлением этого решения.Как разработчик, я исследовал возможность того, что расширения могут достичь того, чего вы хотите, всегда открывая новое окно при нажатии на ссылку, содержащуюся за пределами самого Safari. К сожалению, я не думаю, что такой подход будет возможен.
К сожалению, Safari не позволяет расширениям определять происхождение новой вкладки/окна. Под этим я подразумеваю, что новая вкладка может быть создана, потому что пользователь щелкает ссылку в электронном письме, щелкает ссылку в Safari, удерживая нажатой клавишу Command, открывает закладку Safari, щелкает ссылку в документе PDF или что-либо еще. одно из нескольких других действий, которые откроют страницу в новой вкладке. Независимо от метода, Safari не сообщает, как окно было открыто для расширения Safari.
Поскольку все эти события выглядят одинаково, ни одно расширение не может заставить ссылки из-за пределов Safari открываться в новых окнах, не затрагивая при этом ссылки, открытые другими способами (в том числе при просмотре в Safari).
Хотя изначально он не открывается в нужном вам окне, вы всегда можете захватить вкладку и переместить ее в другое окно Safari сразу после его открытия.
Не уверен, поможет это или нет, просто предложение.
мономет
Оион Акиф
пользователь3439894
Оион Акиф
пользователь3439894
Оион Акиф
мономет
Оион Акиф
оа-
Оион Акиф
jdmc
Оион Акиф
Синиша Шашич