Открыть ссылку в Firefox через контекстное меню с помощью Applescript - PullRequest
2 голосов
/ 08 октября 2010

Я новичок в использовании Applescript для создания сервисов в Snow Leopard. Я часто пытался открыть ссылку в Safari с помощью Firefox. Я знаю, что есть способы открыть URL страницы с помощью FF, но я хочу открыть любую ссылку внутри страницы с помощью FF. Я думаю, что использование Applescript для создания службы может быть хорошей идеей, и до сих пор я нашел это:

openFirefoxURL("http://www.apple.com/")

on openFirefoxURL(x)
   return do shell script "open -a Firefox" & space & quoted form of x
end openFirefoxURL

Это создает новую вкладку в FF красиво. Какой-нибудь совет, чтобы приспособить это, чтобы открыть ссылку на странице?

ОБНОВЛЕНИЕ: Я нашел решение методом проб и ошибок:

tell application "Safari"
    set myURL to (do JavaScript "(getSelection().anchorNode.parentNode.href)" in document 1)
end tell

do shell script "open -a Firefox" & space & myURL

Теперь, когда сценарий служит моей цели, я не знаю, есть ли лучшие способы сделать это, например, получить выбор с помощью Applescript, а не Javascript. Дайте мне знать, если у вас есть лучшие решения. Спасибо!

Ответы [ 4 ]

3 голосов
/ 26 февраля 2012

Существует еще один подход, который я только что написал после поиска в Интернете, когда не нашел подходящего решения.

Это служба в AppleScript, которая открывает любой URL-адрес в Firefox из любого другого поля URL-адреса приложения.Например, просто выделите текст в URL Chrome и выберите службу из списка.

Чтобы создать службу:

  1. Выберите службу в главном диалоговом окне Automator.
  2. Выберите «Служба получает выбранный» [URL-адреса]
  3. Выберите «В» [любое приложение]
  4. Выберите «Ввод» [только URL-адреса]

  5. Затем добавьте действие «Выполнить сценарий оболочки», перетащив его в последовательность сценариев.

  6. Выберите «Оболочка» [/ bin / bash]
  7. Выберите«Передать ввод» [в качестве аргументов]
  8. и вставить следующий скрипт:
for f in "$@"
do
    echo "$f"
    if [ ${f:0:4} = "http" ]; then
        open -a Firefox "$f"
    else
        prefix="http://"
        prefix+=$f
        open -a Firefox "$prefix"
    fi
done

Сценарий проверяет, добавлен ли префикс http, поскольку Chrome не передает егопо умолчанию и открывает Firefox с помощью команды OSX «открыть».

Сохраните эту службу с именем «Открыть URL в Firefox», и все готово.Служба будет доступна в меню списка служб после щелчка правой кнопкой мыши на любом поле URL.

Готово.

Служба сохраняется в ~ / Library / Services.Этот каталог по умолчанию скрыт в Lion, чтобы увидеть его, просто введите следующую команду в терминале:

# chflags nohidden ~/Library/
2 голосов
/ 08 октября 2010

Вам не нужна специальная программа для этого.Safari уже делает это.Сначала необходимо включить меню «Разработка» в Safari.Перейдите в настройки Safari, перейдите в расширенный раздел и установите флажок внизу под названием «Показать меню разработки в строке меню».Теперь, когда у вас есть меню «Разработка», вы можете открыть любую страницу из Safari в другом браузере, перейдя в меню «Разработка» -> «Открыть страницу с помощью».

Таким образом, вы откроете текущую страницу в Firefox, затем просто нажмитепо любой ссылке в Firefox.

0 голосов
/ 27 февраля 2012

Поскольку словарь Safari для AppleScript не предоставляет никакого способа доступа к DOM, решение JavaScript является довольно хорошим. Если вас раздражает наличие службы («Показать URL в Firefox»), даже если в выделенном тексте нет ссылки, я бы порекомендовал Choosy , вспомогательное приложение / панель предпочтений от Джорджа Броклхерста, которая даст вам приглашение для браузеров (и многое другое, вплоть до правил выбора на основе шаблонов). Существует сопутствующее расширение Safari , которое предоставляет параметр контекстного меню, который вы ищете.

0 голосов
/ 08 октября 2010

Я не уверен, что полностью понимаю, что вы пытаетесь сделать, но если вы хотите использовать Firefox в качестве браузера по умолчанию, вам не нужен Applescript. Просто зайдите в Safari, откройте «Настройки» и выберите Firefox в качестве браузера по умолчанию в верхней части первой вкладки.

...