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-адреса, которые я хочу сгруппировать в текстовый файл для а) будущих ссылок и / или б) программно манипулировать.

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

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

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

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


person Four    schedule 18.11.2008    source источник
comment
если / когда вы это поймете - вам обязательно нужно поделиться этим с миром .. Я бы хотел что-то подобное!   -  person warren    schedule 18.11.2008


Ответы (5)


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

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

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

Удачи!

person One Crayon    schedule 19.11.2008

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

Начало работы с разработкой XUL - хороший источник информации о том, как начать программировать на XUL.

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

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

краткое руководство, демонстрирующее смешивание XUL, javascript и другие технологии для обновления веб-сайта.

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

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

Удачи!

-Адам

person Adam Davis    schedule 18.11.2008

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

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

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

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

person Aaron Digulla    schedule 19.11.2008

Вы можете изменить этот бит-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;
    }
}

}

person Community    schedule 02.09.2009

Вот сценарий для 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

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

person fireshadow52    schedule 26.07.2011