Webkit / Safari / Firefox / API: Можно ли программно читать / извлекать URL-адреса нескольких вкладок?

Тема: Программный манипулятор веб-браузера в OS X 10.4.x + Tiger / Leopard. Темы: Webkit, Safari, Firefox, API, Applescript, Automator, Javascript, Ruby, Ruby on Rails, OS X, Tiger Цель: собирать / читать / извлекать URL-адреса из Safari в текстовый файл Ruby on Rails. Примечание. Решение, использующее FF, также очень ценится. Я использую Safari (v. 3.x, OS X 10.4.x) больше и предпочитаю решение, которое работает в Safari.

Иногда я использую веб-браузер для поиска / отображения нескольких страниц сайта, которые я 1) хочу посетить позже, и 2) URL-адреса, которые я хочу сгруппировать в текстовом файле для: a) будущей ссылки и / или b) программно манипулировать.

Например: В сегодняшнем NYT я нахожу семь статей NYT, которые я хочу опубликовать в своем del.icio.us acct. и делиться им по электронной почте в формате, удобном для печати, после того, как они будут опубликованы в онлайн-издании этого дня. Я открываю каждый из них в окне браузера, затем Presto! их URL-адреса автоматически переносятся в файл, в котором (обычное) приложение Ruby on Rails отправляет URL-адреса печатных версий на адреса электронной почты и мой Del.icio.us acct.

Я полагаю, что есть способ сделать шаг извлечения URL из ОС с помощью Applescript или Automator. Я считаю, что МОЖЕТ быть способ сделать это с помощью Javascript.

Мой вопрос: как прочитать поле местоположения вкладок веб-браузера и сопоставить эти строки в текстовый файл (либо внутри моей ОС, либо через провод к веб-приложению)?

Очень признателен.

javascript,firefox,safari,applescript,automator,

4

Ответов: 5


2

Для Safari это было бы довольно тривиально с Applescript. Я бы предложил начать с чего-то вроде закладки «Все закладки», чтобы получить основную логику захвата табуляции, которая вам понадобится, и, возможно, объединить ее в старый сценарий « Сохранить и восстановить сценарий Safari» Джона Грубера, чтобы сохранить URL-адреса в виде списка в текстовый файл ,

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

Для получения дополнительной помощи и ресурсов, относящихся к Applescript, я предлагаю форумы MacScripter .

Удачи!


1

Если вы хотите сделать это, вы должны научиться и использовать XUL. Вкладки не видны javascript (проблемы безопасности / конфиденциальности), и нет API для такого рода информации за пределами firefox.

Начало работы с XUL-разработкой - хороший ресурс для запуска программирования в XUL.

У IBM есть достойный учебник для вашего первого кода XUL.

Вот обработчик вкладок в XUL, чтобы дать вам представление о том, как работать с вкладками.

Краткий учебник , который демонстрирует смешивание XUL, JavaScript и другие технологии для обновления веб - сайта.

Наконец, вот хороший учебник по Lifehacker по расширениям / дополнениям firefox, который показывает вам многое из приведенного выше для простого примера, а затем как его упаковать как .xpi, чтобы другие могли легко добавить его и управлять им из своего firefox.

У меня нет никакого представления о Safari, но он основан на webkit, и для его настройки должны быть некоторые ресурсы, похожие на то, как вы будете использовать XUL в firefox.

Удачи!

-Адам


0

Наиболее простым решением в Firefox является «Закладка всех открытых вкладок» (в меню закладок). Дайте этой «папке с закладками» определенное имя. Затем вы можете войти в свой профиль ( http://support.mozilla.com/en-US/kb/Profiles ) и открыть файл «bookmarks.html», который содержит всю необходимую информацию, а затем некоторые.

Если вы хотите использовать пользовательский интерфейс, проверьте Taboo и «Sitzungs-Manager» (возможно, Session-Manager). Оба предназначены для Firefox 3.0+

Taboo позволяет вам сохранить вкладку для «более позднего чтения» (вроде как меню закладок, но всего одним щелчком мыши, также сохранит скриншот страницы).

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


0

Вы можете изменить этот бит-0-код, чтобы начать работу. Я использовал это, чтобы создать собственный личный плагин для закладки для одной вкладки. Вы можете всплывать список URL-адресов в окне xul, а затем выбирать те, которые вы хотите отправить / присвоить в одном месте.

function getGetDocData(){
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
               .getService(Components.interfaces.nsIWindowMediator);
var mainWindow = wm.getMostRecentWindow("navigator:browser");
var tab  = mainWindow.getBrowser().selectedTab;
titleDG = tab.label;
for(var i = 0; i < window.opener.length; i++){
    var doc = window.opener[i].document;
    if(doc.title == tab.label){
        hrefToDG = doc.location.href;
    }
}

}


0

Вот сценарий для AppleScript, который должен вас поймать (этот скрипт для Safari) ...

property these_URLs : {}
set the text item delimeters of AppleScript to ""
----------------------------------------------------------------------------------
--Initialize the program
set the action to the button returned of (display dialog "Create or view a list of favorites..." buttons{"Cancel","View","Create"} default button 3)
if the action is "Create" then
    create_text_file()
else
    open_favorites()
end if

---------------------------------SUBROUTINES--------------------------------------

on create_text_file()
    --get the URL of every tab of every window
    tell application "Safari"
        set theWindows to (get every document) as list
        repeat with i from 1 to the count of theWindows
            set this_Window to item i of theWindows
            set theTabs to (get every tab of this_Window) as list
            repeat with x from 1 to the count of theTabs
                set this_Tab to item x of theTabs
                set this_URL to (the URL of this_tab) as string
                set the end of these_URLs to this_URL
            end repeat
        end repeat
    end tell

    --put the URLs into a text document
    set newFile to (choose file name with prompt "Choose a name and location for the new file:" default location (path to desktop folder))
    try
        open for access newFile with write permission
        set the text item delimiters of AppleScript to return
        set the_URLs to these_URLs as string
        write the_URLS to file newFile
        close access newFile
    on error
        try
            close access newFile
        end try
    end try
    set the text item delimiters of AppleScript to ""
end create_text_file()

on open_favorites()
   --Verify whether you have saved any favorites with this script
   if these_URLs is {} then display dialog "You have not added any favorites with this script." with icon note buttons{"Cancel"}
   --there are favorites so open all the URLs you stored in the text file
   repeat with i from 1 to the count of these_URLs
       set this_URL to item i of these_URLs
       tell application "Safari" to make new tab at the end of tabs of document 1 with properties {URL:this_URL}
   end repeat
end open_favorites

Если у вас есть какие-либо вопросы просто спросить. :)

JavaScript, Firefox, Safari, AppleScript, Automator,
Похожие вопросы