Принудительно открывать URL-ссылку в определенном браузере

Я создал URL-ссылку в своем доке, однако ссылка открывается только в браузере по умолчанию. На моей машине установлены Safari, Firefox и Chrome (последняя версия по умолчанию). Мне интересно, знает ли кто-нибудь, как по умолчанию открывать ссылку в Firefox вместо Chrome, но при этом сохранять Chrome в качестве браузера по умолчанию. Примечание. Я запускаю Mavericks на своем MacBook Pro.

Вы можете создать сценарий, который открывает определенный браузер и переходит к URL-адресу, который вы хотите увидеть. Вы должны установить скрипт в Dock вместо текущей URL-ссылки, которая у вас есть.
Вы не можете установить браузер в файле .url. Итак, вам нужно вместо файла .url написать скрипт, в котором вы открываете браузер со своей ссылкой.
я обновил свой ответ

Ответы (11)

Finicky - Всегда открывайте правильный браузер

Это бесплатный инструмент с открытым исходным кодом для этого с кучей различных настроек и правил, он может:

  • Напишите правила для открытия URL-адресов в любом браузере
  • Перепишите и замените части URL-адресов перед их открытием.
  • Автоматически разрешает URL-адрес назначения от поставщиков коротких URL-адресов.

Что касается вашего прямого вопроса, вот настройки:

/**
 * Save as ~/.finicky.js
 */
module.exports = {
    defaultBrowser: "Google Chrome",
    handlers: [
        {
            match: finicky.matchHostnames(["your_specific_url_to_open_in_Firefox"]),
            browser: "Firefox"
        }
    ]
};

Вот и все! Просто запустите этот плагин, и он будет обрабатывать все перенаправления за вас.

Дополнительные примеры см. на странице Finicky github.

Вы можете использовать мощную openкоманду all для достижения этого с помощью сценария оболочки / сценария Apple. Не обязательно самый лучший способ, но я так делаю.

open http://apple.stackexchange.com -a Firefox.app 

будет основной командой для открытия этой страницы в Firefox. Вы можете легко обернуть это в приятный для использования сценарий Apple — дайте мне знать, если вам нужно знать, как это сделать!

По крайней мере, для macOS 12.1 это может работать не так, как ожидалось. Если данный браузер не является браузером по умолчанию и еще не открыт, команда одновременно открывает URL-адрес как в данном браузере, так и в браузере по умолчанию. Хакерский обходной путь, который открывает браузер (не по умолчанию) перед открытием URL-адреса: open -a safari; sleep 2; open -a safari http://apple.stackexchange.com. Может потребоваться настроить время ожидания в зависимости от скорости системы.
@Wumms - я думаю, что проблема более конкретна. Если Safari не является браузером по умолчанию и еще не открыт, команда открыть Safari также открывает браузер по умолчанию. Я не вижу этой проблемы при открытии любых других браузеров.

Вы можете использовать Choosy и установить правила для URL-адреса, который вы создали в Dock. Это работает не только для URL-адреса в Dock, правила также применяются ко всем ссылкам, которые вы открываете в Safari, Firefox или Chrome. Если вам нужно, чтобы определенный домен или шаблоны URL открывались в отдельном браузере, то Choosy — это то, что вам нужно.

Обратите внимание, что Choosy находится за платным доступом.
Спасибо! Я собирался задать вопрос, очень похожий на OP, для которого Choosy кажется лучшим инструментом для работы!
Это старый ответ, но это тот, который я искал. Чуси великолепен. Не нашел ничего другого, что действительно делает то, что делает Choosy. Я лично использую его, чтобы ссылки из определенного приложения всегда открывались в Chrome, даже если моим браузером по умолчанию является FireFox.
Найдена бесплатная замена с открытым исходным кодом @markquezada apple.stackexchange.com/a/378618/49492
Бесплатная замена с открытым исходным кодом… которая требует редактирования JSON для настройки правил. Я придерживаюсь Choosy, спасибо.
@TJLuoma 1 файл с 10 строками предопределенных настроек ... на самом деле не так уж сложно. наверное, лучше перейти на Windows, чтобы вообще избавиться от инструментов командной строки. ;)
@skywinder а) Windows теперь имеет подсистему Linux, поэтому в ней есть множество инструментов командной строки; и б) я пишу сценарии оболочки с 1991 года на NeXT, так что я почти не против командной строки. Чего я не приемлю, так это людей, которые выберут меньший инструмент, который, как они утверждают, «так же хорош», потому что он бесплатный. Использование текстового файла для конфигурации на Mac — это просто лень разработчика.
@TJLuoma понял. Я просто фанат настраиваемых решений с открытым исходным кодом. при всем моем уважении к вашему опыту, ваша точка зрения имеет смысл. Спасибо.
И это я тоже могу уважать. (Я бы сказал, что Choosy тоже «настраиваемый», просто для него не требуется текстовый файл, но теперь мы деликатно.) Хорошо знать, какие опции доступны, чтобы люди могли выбирать то, что им нравится. Я нахожусь в той точке жизни, когда отсутствие необходимости редактировать текстовые файлы для конфигурации стоит того, чтобы купить приложение за 10 долларов. Другие могут ценить другие вещи. Ваше здоровье. 👍

Вы можете использовать Browserosaurus , проверьте это программное обеспечение, это бесплатно на всю жизнь. Это точно так же, как разборчиво, но бесплатно.

Проверьте эту ссылку для Browserosaurus

Преимущество в том, что это открытый исходный код. Вот ссылка

Firefox (по крайней мере, моя версия, 27.0.1), к сожалению, не поддерживает файлы .url.

Итак, что я сделал, так это создал файл .html, который перенаправляет на правильный URL-адрес. Это все, что вам нужно поместить в файл, просто текстовый документ:

 <meta http-equiv="refresh" content="0;URL_GOES_HERE">

Замените URL_GOES_HERE на нужный URL-адрес, включая http://или https://.

Выберите его в Finder, Command ⌘+ , Iчтобы получить информацию, и прокрутите вниз до «Открыть с помощью», где должно быть всплывающее меню, в котором отображается Chrome. Измените это на Firefox. Над этим должно быть написано Имя и Расширение; если у него есть что-то вроде .html.txt, вы можете изменить его на .html.

Вот Applescript, который вы можете сохранить как приложение и получить к нему доступ из док-станции, как любое обычное приложение.


Что оно делает

Это позволяет вам динамически изменять URL-адрес для открытия, если вам нужно.

Это означает, что вам не нужно жестко кодировать URL-адрес в приложении.

После того, как URL-адрес установлен, вам просто нужно щелкнуть приложение в любое время в Dock, чтобы открыть его в FireFox. Или откройте приложение как обычно из Finder.

Вы можете легко изменить URL-адрес в любое время, выполнив шаг 1 ниже.


Шаг 1. Установка URL-адреса приложений :

Скопируйте URL-адрес в буфер обмена и щелкните приложение в доке.

Он проверит, начинается ли буфер обмена с «http:», если это так, это будет означать, что вы хотите установить URL-адрес для открытия приложения в Firefox.

Откроется диалоговое окно для подтверждения этого и внесения любых изменений в URL-адрес.

введите описание изображения здесь

Затем он установит URL-адрес магазина и очистит буфер обмена.


Шаг 2. Открытие URL-адреса после того, как URL-адрес был установлен:

Теперь каждый раз, когда вы щелкаете приложение в Dock, оно открывает URL-адрес в firefox.


Чтобы изменить URL-адрес Повторите шаг 1 .


Эпплскрипт

(* stored url *)
property theUrl : ""

on run
    
    (* check if the clipboard has an http url*)
    set fromClip to the clipboard as string
    
    if fromClip starts with "http:" or fromClip starts with "https:" then
        (* Theclipboard has an http url so this means we want to update the apps url to open in firefox *)
        
        (* Confirm this is what we want to do, and we can make adjustments to the url*)
        display dialog "Set new URL to " default answer fromClip buttons {"Cancel", "OK"} default button 1
        
        
        copy the result as list to {button_pressed, text_returned}
        if button_pressed is "OK" then
            (* Set the url to the stored property*)
            set theUrl to text_returned
            
            (* Clear the clipboard*)
            set the clipboard to ""
        end if
        
        
    else
        (* check if the clipboard DID NOT start with http url*)
        if theUrl is not "" then
            (* This means   we want to open the current url in firefox *)
            do shell script "open " & quoted form of theUrl & " -b org.mozilla.firefox"
        end if
        
    end if
    
    
end run

Примечание:

Это написано в OS X 10.9

Где кажется, что список {text_returned, button_pressed} перевернут на {button_pressed, text_returned}


ОБНОВЛЕНИЕ Вторая идея.

Чтобы, возможно, удовлетворить любого, кто не хочет использовать буфер обмена. И хочет придерживаться использования файла (webloc)

Этот Applescript при сохранении в качестве приложения и в доке.

Будет ли при первом запуске запрашивать папку, в которой хранится один файл webloc.

В папке должен быть только один файл.

При запуске в любое время после этого откроется файл или любой другой файл, который вы поместите в папку.

Если он не может найти файл в папке или саму папку, когда вы запускаете приложение, чтобы открыть URL-адрес, он предупредит вас и предложит вам сбросить папку.

property theUrl : ""

on run
    
    if theUrl is not "" then
        try
            tell application "System Events" to set chosenFile to POSIX path of (file 1 of theUrl) whose visible is true
            
            do shell script "open " & quoted form of chosenFile & " -b org.mozilla.firefox"
        on error errm
            
            display dialog "ERROR : The URL Folder may be empty or not exist" with icon 0 buttons {"Reset Folder", "OK"} default button 1 giving up after 5
            copy the result as list to {button_pressed, text_returned}
            if button_pressed is "Reset Folder" then
                set theUrl to (choose folder)
            end if
        end try
    else
        
        set theUrl to (choose folder)
    end if
    
    
end run
Мне это кажется чрезмерным и надуманным. Значок дока не будет работать должным образом каждый раз, когда вам случится скопировать URL-адрес в буфер обмена, что, по крайней мере для меня, довольно часто (9 из моих последних 15 содержимого буфера обмена были URL-адресами). Также это не будет работать для https.
@NReilingh Хорошее замечание по HTTPS. На что я сейчас скорректировался. Но я не согласен с вами по другому пункту. Значок Dock будет работать должным образом из-за заданного ему поведения, и его ожидаемое поведение объяснено. Но для вас это может не сработать, потому что полезность приложения зависит от ваших потребностей и ситуации. Вам могут подойти и другие решения, которые включают жесткое кодирование URL-адреса.
@NReilingh посмотрите обновление, которое может вам подойти.

Я использую контекстное меню в файле URL, чтобы открыть сайт в любом браузере:

  • Щелкните правой кнопкой мыши и выберите информационный лист
  • Под «Открыть с помощью» выберите «Другое» -> «Показать все приложения».
  • Выберите веб-браузер по вашему выбору

Теперь, когда вы закончили с этим, переместите его в док, и он будет делать то, что вы хотели.

@Buscar웃 Ты уверен, что это работает? Это была одна из первых вещей, которые я попробовал, но использовал информационное окно. Но это не сработало. Файл продолжал открываться в браузере по умолчанию. только что попробовал еще раз с контекстным меню, то же самое.
Ну, я только что попробовал, и это сработало для меня. Сначала сохраните URL-адрес на рабочем столе, измените его, а затем переместите в док-станцию.
Я думал, что это должно было сработать. Должно быть, мой Mac причиняет боль .. Ура

Я решил это с помощью гораздо более простого AppleScript и подробно разместил решение на https://apple.stackexchange.com/a/267324/71739 . Таким образом, создайте приложение AppleScript с помощью этого кода:

tell application "Safari" to open location "https://apple.stackexchange.com/"

Но сохраните копию файла сценария, потому что вы не можете повторно открывать приложения в редакторе сценариев.

tell application "Google Chrome"
    if it is running then
        make new window
        open location "http://wdmycloud.local"
        delay 1
        activate
    else
        activate
        open location "http://wdmycloud.local"
        delay 1
        activate
    end if
end tell

Примечание. Я собираюсь порекомендовать свое приложение, доступное в Mac App Store. Вот ссылка для скачивания


Вы можете использовать Линко

Приборная панель Linko

Функции

  • Прост в использовании, поэтому хорош для тех, кто хочет быстро установить несколько основных правил.
  • Имеет встроенный тестер правил для визуализации функции сопоставления правил.

Чем он отличается от решений, упомянутых выше?

Это намного проще в использовании по сравнению с Choosy. Choosy — это мощный инструмент с большим количеством функций. Но для тех, кто ищет простое и легкое решение, Linko будет правильным инструментом.

Finicky также хорошо справляется со своей задачей, но мало кто упомянул, что редактирование файла конфигурации может быть обременительным для некоторых пользователей.

В общем, Linko предназначен для тех, кто ищет простой и простой интерфейс без дополнительных функций и файла конфигурации для редактирования.

Выглядит интересно, но это немного дорого для того, сколько раз мы будем его использовать.

Принудительно открывать URL-ссылку в определенном браузере

Теперь есть бесплатный и портативный (Linux, Mac и Windows) способ сделать это во всех основных браузерах и, что наиболее важно, МЕЖДУ браузерами.

Например, я использую Opera для нескольких закрепленных вкладок для связи: Gmail, G Calendar, WhatApp и т. д. Я использую Firefox для всего остального и Chrome для нескольких сайтов, которые просто никогда не работают в Firefox.

Расширения Энди Портмана с открытым исходным кодом «Открыть в» решают эту проблему для всех основных браузеров.

https://add0n.com/open-in.html

Шаг 1. Расширения браузера

В Firefox я установил:

Для Opera я установил:

Обратите внимание, что у Энди Портмана есть множество других версий, в зависимости от того, какой браузер вы используете.

Смотрите весь его список по адресу:

https://add0n.com/open-in.html#faq1

введите описание изображения здесь

Шаг 2: Собственный клиент (чтобы ваш браузер мог открывать другие браузеры)

Возьмите клиент Linux, Mac или Windows для своей платформы и установите его.

https://github.com/andy-portmen/native-client/релизы

Шаг 3: Настройте правила, чтобы решить, когда используемый вами браузер должен направлять запросы в другой браузер.

Например, в Firefox я использую два расширения. 1, чтобы отправить несколько ссылок в Chrome 1, чтобы отправить несколько ссылок в Opera

Для Firefox «Открыть в Chrome» я просто установил:

введите описание изображения здесь

Для Firefox «Открыть в Opera» я установил:

введите описание изображения здесь

Для Opera "Открыть в Firefox" я установил:

введите описание изображения здесь

Обратите внимание, что я также установил здесь «Обратный режим», поэтому домены, которые я не укажу, будут автоматически перенаправлены в Firefox.

СДЕЛАННЫЙ

Наслаждайтесь использованием браузера, который вы хотите, на сайте, который вы хотите.

Пожалуйста, напишите ответ и голосуйте, если это поможет вам.