Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№5128-04-2014 11:39:50

Vladimir_S
Участник
 
Группа: Extensions
Откуда: Санкт-Петербург
Зарегистрирован: 19-09-2008
Сообщений: 4482
UA: Firefox 29.0

Re: [CB]Undo Close Tabs

Вот сейчас только что обнаружил: отвалилась кнопка на Fx 29.0 RC1. Дома на Авроре проверю. Исправьте, пожалуйста.

P.S. Так, пока - отбой. После перезапуска браузера заработала. Понаблюдаю.

Отредактировано Vladimir_S (28-04-2014 11:48:33)


"Большинство философов до сих пор придерживается весьма нефилософских воззрений на многие вопросы философии" Эдгар Аллан По

Отсутствует

 

№5228-04-2014 13:35:34

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 28.0

Re: [CB]Undo Close Tabs

Vladimir_S пишет:

P.S. Так, пока - отбой.

У меня, вроде бы, тоже работает – проверил на 29.0 RC1 и 31.0a1 (2014-04-27).


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5328-04-2014 17:37:33

feas
Участник
 
Группа: Extensions
Откуда: от DNS
Зарегистрирован: 25-08-2011
Сообщений: 5164
UA: Firefox 30.0
Веб-сайт

Re: [CB]Undo Close Tabs

Vladimir_S пишет:

P.S. Так, пока - отбой. После перезапуска браузера заработала. Понаблюдаю.

разок тоже глюканула, правда как я выяснил глюканула вся инициализация =)


Добро пожаловать на форум mozilla-russia.org. Здесь вы можете посоветоваться или обратиться за помощью к фанатам и пользователям продуктов Мозиллы. Если не знаете как правильно оформить пост специально для вас расписан пункт 2.2 правил форума
Сброс на примере Firefox – лёгкое решение большинства проблем
Починка браузера. Перенос своих настроек на новый профиль.

Отсутствует

 

№5424-08-2014 22:21:47

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2032
UA: Firefox 32.0

Re: [CB]Undo Close Tabs

Только у меня в 32 [firefox] вкладки из выпадающего списка открывает не те на которые нажимаешь, жмешь одно, открывает другое?


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№5525-08-2014 01:25:31

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 31.0

Re: [CB]Undo Close Tabs

villa7 пишет:

Только у меня в 32 [firefox] вкладки из выпадающего списка открывает не те на которые нажимаешь, жмешь одно, открывает другое?

У меня нормально. Видимо, какое-то расширение успевает изменить список вкладок пока открыто меню.
Через встроенное меню (Журнал – Недавно закрытые вкладки) как работает?


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5625-08-2014 01:37:00

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2032
UA: Firefox 32.0

Re: [CB]Undo Close Tabs

Infocatcher
Через журнал вроде нормально, да и в кнопке, то нормально, то нет, закономерности не пойму.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№5712-10-2014 22:43:03

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 32.0

Re: [CB]Undo Close Tabs

Undo Close Tabs 0.3.3 (2014-10-12)
[+] Добавлена возможность отображения времени закрытия вкладки/окна во всплывающей подсказке (настройки itemTipTemplate и buttonTipTemplate).
[+] Добавлена настройка windowItemTemplate для названий пунктов для восстановления закрытых окон.
[*] Дополнительная информация во всплывающих подсказках теперь отображается серым цветом.
[*] Небольшие улучшения производительности при запуске.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№5814-10-2014 15:11:01

ifln
Участник
 
Группа: Members
Зарегистрирован: 20-09-2013
Сообщений: 171
UA: unknown 0.0

Re: [CB]Undo Close Tabs

Спасибо за кнопку!
Есть возможность увеличить список закрытых вкладок , скажем до 20?

Отсутствует

 

№5914-10-2014 15:33:21

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 32.0

Re: [CB]Undo Close Tabs

ifln пишет:

Есть возможность увеличить список закрытых вкладок , скажем до 20?

Есть две встроенные настройки: browser.sessionstore.max_tabs_undo и browser.sessionstore.max_windows_undo.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6014-10-2014 17:04:15

ifln
Участник
 
Группа: Members
Зарегистрирован: 20-09-2013
Сообщений: 171
UA: unknown 0.0

Re: [CB]Undo Close Tabs

Infocatcher, от души спасибо. :beer:
А я в коде расширения эту настройку искал. :dumb:

Отсутствует

 

№6122-01-2015 16:03:26

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Infocatcher, спасибо за кнопочку! Возможно ли использование хоткея - по Опере Ctrl-Z пальцы запомнили :-) ? Чтобы нажатие хоткея было равносильно клику ЛКМ по кнопке.

P.S. Стандартная возможность назначить хоткей кнопке не работает - просто ничего не происходит. Даже с отмеченным пунктом "Запретить стандартное действие...". Пробую именно Ctrl+Z . Да и вообще никакие хоткеи не цепляются...

Отредактировано Александр Колесников (22-01-2015 16:22:23)

Отсутствует

 

№6222-01-2015 16:51:50

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Александр Колесников
Если ставить по custombutton://… ссылке из первого сообщения или отсюда, по хоткею будет открывать меню.

А для восстановления вкладки надо в секцию «код» вписать вот такое:

Выделить код

Код:

if(!event.target) // Button's hotkey pressed
    this.undoCloseTabsList.undoCloseTab();

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6323-01-2015 02:02:51

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Спасибо, теперь всё, как и хотелось!
Просто я со странички github.com/Infocatcher/Custom_Buttons/t … Close_Tabs, шёл на github.com/Infocatcher/Custom_Buttons/b … eTabs.html и копировал вручную код (там была только инициализация), вместо infocatcher.github.io/Custom_Buttons/in … eTabs.html.

Добавлено 23-01-2015 02:05:17

Infocatcher пишет:

А для восстановления вкладки надо в секцию «код» вписать вот такое:

P.S. Может, эту инфу в шапку поднять? Имхо, удобно...

Отредактировано Александр Колесников (23-01-2015 02:05:17)

Отсутствует

 

№6423-01-2015 09:47:13

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Александр Колесников
Пока что добавил в закомментированном виде в установочную ссылку:
https://github.com/Infocatcher/Custom_B … 928f90c738


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6503-02-2015 00:42:38

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Скрипт закрывает закреплённую вкладку http://www.trackitonline.ru/?do=list&pg=1 https://farm8.staticflickr.com/7383/16404535886_bbac501174_m.jpg , где я отслеживаю посылки с eBay...

Отсутствует

 

№6603-02-2015 09:55:04

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Александр Колесников
В каком смысле закрывает?
Не должно бы ничего закрывать, там только вывод списка реализован и открытие ранее закрытых вкладок.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6704-02-2015 12:16:47

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Infocatcher I`m sorry..  Не туда написал почему-то... Ну раз уж здесь начал и это по поводу Вашего расширения, то ... вот что происходит:
https://farm8.staticflickr.com/7387/15821210493_936cd18d2f_m.jpg
когда именно - как-то не обращал внимания, замечаю только тогда, когда той вкладки на месте не оказывается...
Имя: Close Download Tabs
Версия: 0.1.0a25

Сведения о моём FF:

скрытый текст
---------------------

Имя: Firefox
Версия: 35.0.1
User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Многопроцессные окна: 0/3

Сообщения о падениях за последние 3 дня
---------------------------------------

Все сообщения о падениях (включая 1 ожидающее отправки сообщение в заданном диапазоне времени)

Расширения
----------

Имя: Генератор безопасных паролей
Версия: 0.5
Включено: true
ID: password.generator@kolya.ca

Имя: Скрыть Элемент Помощника для Adblock Plus
Версия: 1.3.1
Включено: true
ID: elemhidehelper@adblockplus.org

Имя: about:addons-memory
Версия: 10
Включено: true
ID: about-addons-memory@tn123.org

Имя: Adblock Plus
Версия: 2.6.7
Включено: true
ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

Имя: Advanced Locationbar
Версия: 1.0.1
Включено: true
ID: advancedlocationbar@veg.by

Имя: anonymoX
Версия: 2.4.6
Включено: true
ID: client@anonymox.net

Имя: Close Download Tabs
Версия: 0.1.0a25
Включено: true
ID: closeDownloadTabs@infocatcher

Имя: Custom Buttons
Версия: 0.0.5.8
Включено: true
ID: custombuttons@xsms.org

Имя: Fast Dial
Версия: 4.12
Включено: true
ID: fastdial@telega.phpnet.us

Имя: FindBar Tweak
Версия: 1.4.18
Включено: true
ID: fbt@quicksaver

Имя: FireGestures
Версия: 1.8.7
Включено: true
ID: firegestures@xuldev.org

Имя: Flashblock
Версия: 1.5.18
Включено: true
ID: {3d7eb24f-2740-49df-8937-200b1cc08f8a}

Имя: Google™ Translator
Версия: 0.3.2
Включено: true
ID: jid1-dgnIBwQga0SIBw@jetpack

Имя: Imagus
Версия: 0.9.8.18
Включено: true
ID: {00000f2a-7cde-4f20-83ed-434fcb420d71}

Имя: Keylogger Beater
Версия: 3.2.1
Включено: true
ID: keyloggerbeater@toptip.ca

Имя: Link Properties Plus
Версия: 1.5.2
Включено: true
ID: linkPropertiesPlus@infocatcher

Имя: Make Link
Версия: 11.03
Включено: true
ID: {0B6B0D55-DFAC-4006-AEE6-25667F55A2A8}

Имя: Mozilla Archive Format
Версия: 3.0.3
Включено: true
ID: {7f57cf46-4467-4c2d-adfa-0cba7c507e54}

Имя: Print Edit
Версия: 13.8
Включено: true
ID: printedit@DW-dev

Имя: ProfileSwitcher
Версия: 1.6.2
Включено: true
ID: {fa8476cf-a98c-4e08-99b4-65a69cb4b7d4}

Имя: Restartless Restart
Версия: 9
Включено: true
ID: restartless.restart@erikvold.com

Имя: SaveFrom.net помощник
Версия: 4.61
Включено: true
ID: helper@savefrom.net

Имя: Search Site
Версия: 5.1
Включено: true
ID: searchsite@DW-dev

Имя: Secure Login
Версия: 1.0.6
Включено: true
ID: secureLogin@blueimp.net

Имя: TextMarker Go
Версия: 0.7.4
Включено: true
ID: {cd6c4ebf-366e-45a0-98b5-b8217288eed7}

Имя: TryAgain
Версия: 3.4.6
Включено: true
ID: {992791ee-61dc-7b98-a8fd-dc49b7deeee9}

Имя: Update Scanner
Версия: 3.2.0
Включено: true
ID: {c07d1a49-9894-49ff-a594-38960ede8fb9}

Имя: Avast Online Security
Версия: 10.1.0.170
Включено: false
ID: wrc@avast.com

Имя: YesScript
Версия: 2.0
Включено: false
ID: yesscript@userstyles.org

Графика
-------

Аппаратно ускоренные окна: 3/3 Direct3D 11 (OMTC)
Версия драйвера: 9.17.10.3347
Визуализатор WebGL: Google Inc. -- ANGLE (Intel(R) HD Graphics 3000 Direct3D9Ex vs_3_0 ps_3_0)
Дата разработки драйвера: 1-29-2014
Драйвера видеокарты: igdumd64 igd10umd64 igd10umd64 igdumd32 igd10umd32 igd10umd32
Код подсистемы: 00000000
Код производителя: 0x8086
Код устройства: 0x0112
Объём видеопамяти: Unknown
Описание видеокарты: Intel(R) HD Graphics 3000
Параметры ClearType: D [ Gamma: 2200 Pixel Structure: R ClearType Level: 100 Enhanced Contrast: 300 ] D [ Gamma: 1800 Pixel Structure: R ClearType Level: 100 Enhanced Contrast: 50 ]
Direct2D включён: true
DirectWrite включён: true (6.3.9600.17111)
GPU #2 активен: false
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d
AzureContentBackend: direct2d
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0

Важные изменённые настройки
---------------------------

accessibility.typeaheadfind: true
accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 51200
browser.cache.disk.smart_size.enabled: false
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 1
browser.link.open_newwindow: 1
browser.link.open_newwindow.override.external: 3
browser.link.open_newwindow.restriction: 0
browser.places.smartBookmarksVersion: 7
browser.search.openintab: true
browser.sessionstore.max_tabs_undo: 100
browser.sessionstore.upgradeBackup.latestBuildID: 20150122214805
browser.startup.homepage_override.buildID: 20150122214805
browser.startup.homepage_override.mstone: 35.0.1
browser.tabs.insertRelatedAfterCurrent: false
browser.urlbar.maxRichResults: 20
dom.mozApps.used: true
extensions.lastAppVersion: 35.0.1
general.autoScroll: false
gfx.direct3d.last_used_feature_level_idx: 0
media.gmp-gmpopenh264.lastUpdate: 1421868891
media.gmp-gmpopenh264.version: 1.1
media.gmp-manager.lastCheck: 1423000230
network.cookie.cookieBehavior: 3
network.cookie.prefsMigrated: true
network.http.proxy.pipelining: true
places.database.lastMaintenance: 1422996978
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
print.printer_EPSON_TX650_Series.print_bgcolor: false
print.printer_EPSON_TX650_Series.print_bgimages: false
print.printer_EPSON_TX650_Series.print_colorspace:
print.printer_EPSON_TX650_Series.print_command:
print.printer_EPSON_TX650_Series.print_downloadfonts: false
print.printer_EPSON_TX650_Series.print_duplex: 1515870810
print.printer_EPSON_TX650_Series.print_edge_bottom: 0
print.printer_EPSON_TX650_Series.print_edge_left: 0
print.printer_EPSON_TX650_Series.print_edge_right: 0
print.printer_EPSON_TX650_Series.print_edge_top: 0
print.printer_EPSON_TX650_Series.print_evenpages: true
print.printer_EPSON_TX650_Series.print_footercenter:
print.printer_EPSON_TX650_Series.print_footerleft: &PT
print.printer_EPSON_TX650_Series.print_footerright: &D
print.printer_EPSON_TX650_Series.print_headercenter:
print.printer_EPSON_TX650_Series.print_headerleft: &T
print.printer_EPSON_TX650_Series.print_headerright: &U
print.printer_EPSON_TX650_Series.print_in_color: true
print.printer_EPSON_TX650_Series.print_margin_bottom: 0.5
print.printer_EPSON_TX650_Series.print_margin_left: 0.5
print.printer_EPSON_TX650_Series.print_margin_right: 0.5
print.printer_EPSON_TX650_Series.print_margin_top: 0.5
print.printer_EPSON_TX650_Series.print_oddpages: true
print.printer_EPSON_TX650_Series.print_orientation: 0
print.printer_EPSON_TX650_Series.print_page_delay: 50
print.printer_EPSON_TX650_Series.print_paper_data: 9
print.printer_EPSON_TX650_Series.print_paper_height: 11.00
print.printer_EPSON_TX650_Series.print_paper_name:
print.printer_EPSON_TX650_Series.print_paper_size_type: 0
print.printer_EPSON_TX650_Series.print_paper_size_unit: 1
print.printer_EPSON_TX650_Series.print_paper_width: 8.50
print.printer_EPSON_TX650_Series.print_plex_name:
print.printer_EPSON_TX650_Series.print_resolution: 1515870810
print.printer_EPSON_TX650_Series.print_resolution_name:
print.printer_EPSON_TX650_Series.print_reversed: false
print.printer_EPSON_TX650_Series.print_scaling: 1.00
print.printer_EPSON_TX650_Series.print_shrink_to_fit: true
print.printer_EPSON_TX650_Series.print_to_file: false
print.printer_EPSON_TX650_Series.print_unwriteable_margin_bottom: 0
print.printer_EPSON_TX650_Series.print_unwriteable_margin_left: 0
print.printer_EPSON_TX650_Series.print_unwriteable_margin_right: 0
print.printer_EPSON_TX650_Series.print_unwriteable_margin_top: 0
privacy.sanitize.migrateFx3Prefs: true
security.dialog_enable_delay: 0
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1421874116

Важные заблокированные настройки
--------------------------------

JavaScript
----------

Инкрементальный GC: true

Поддержка доступности
---------------------

Активирована: false
Отключение поддержки доступности: 0

Версии библиотек
----------------

NSPR
Ожидаемая минимальная версия: 4.10.7
Используемая версия: 4.10.7

NSS
Ожидаемая минимальная версия: 3.17.2 Basic ECC
Используемая версия: 3.17.2 Basic ECC

NSSSMIME
Ожидаемая минимальная версия: 3.17.2 Basic ECC
Используемая версия: 3.17.2 Basic ECC

NSSSSL
Ожидаемая минимальная версия: 3.17.2 Basic ECC
Используемая версия: 3.17.2 Basic ECC

NSSUTIL
Ожидаемая минимальная версия: 3.17.2
Используемая версия: 3.17.2

Экспериментальные возможности
-----------------------------

Ну и с десяток кнопок CB... это те, что, имхо, могут каким-то боком иметь воздействие:
скрытый текст
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://github.com/Infocatcher/Custom_Buttons/blob/master/code_snippets/mergeInitialization.js
// Example for safely use only one button for initialization of many "buttons" without UI (Для любителей засовывать кучу разных кодов в инициализацию одной кнопки).
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var _destructors = [];
function destructor() {
    var args = arguments;
    _destructors.forEach(function(destructor) {
        try {
            destructor.apply(this, args);
        }
        catch(e) {
            Components.utils.reportError(e);
        }
    }, this);
}
if("defineProperty" in Object) { // Firefox 4+
    Object.defineProperty(this, "onDestroy", {
        get: function() {
            return _destructors.length ? destructor : undefined;
        },
        set: function(f) {
            _destructors.push(f);
        },
        enumerable: true,
        configurable: true
    });
}
else {
    this.__defineGetter__("onDestroy", function() {
        return _destructors.length ? destructor : undefined;
    });
    this.__defineSetter__("onDestroy", function(f) {
        _destructors.push(f);
    });
}



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//https://forum.mozilla-russia.org/viewtopic.php?pid=557727#p557727
//Дублировать таб( Firefox 3.6 + )  Автор: bunda1    Версия: от 30.04.2013.
//Описание: Kод добавляет новый пункт в контекстное меню вкладки: Дублировать таб, который дает возможность дублировать вкладку.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(function() {

   var node = document.getElementById("duplicateTab");
   if ( node ) node.parentNode.removeChild( node );
       
   var tabMenu = gBrowser.tabContainer.contextMenu || document.getAnonymousElementByAttribute(gBrowser, "anonid", "tabContextMenu");
   var menuItem = document.createElement("menuitem");               
   menuItem.setAttribute("label", "Дублировать вкладку");
   menuItem.setAttribute("id", "duplicateTab");
   menuItem.setAttribute("oncommand", "gBrowser.selectedTab = gBrowser.duplicateTab( gBrowser.mCurrentTab )");
   tabMenu.insertBefore( menuItem, tabMenu.firstChild.nextSibling );
})();



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//https://forum.mozilla-russia.org/viewtopic.php?pid=662500#p662500
//Автор: 2k1dmg  Внрсия: от 26-09-2014 07:14:19
//Описание: При закрытии вкладки фокус переходит на предыдущую использованную вкладку, а не как по умолчанию в FF, на соседнюю.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const tc = gBrowser.tabContainer;
let tabs = [];
function onTabSelect(e) {
    for (let i = 0; i < tabs.length; i++) {
        if (e.target.linkedPanel != tabs[i])
            continue;
        tabs.splice(i, 1);
        break;
    }
    tabs.push(e.target.linkedPanel);
}
function onTabClose(e) {
    let allTabs = Array.slice(tc.childNodes);
    let allTabsLP = allTabs.map(function(tab) {
        return tab.linkedPanel;
    });
    if (e.target == gBrowser.selectedTab &&
            tabs.length >= 1) {
        let tab;
        let lp = tabs[tabs.length - (tabs.length == 1 ? 1 : 2)];
        for (let i = 0; i < allTabsLP.length; i++) {
            if (lp != allTabsLP[i])
                continue;
            tab = allTabs[i];
            break;
        }
        if (tab)
            gBrowser.selectedTab = tab;
    }
    if (tabs.length != 0) {
        tabs = tabs.filter(function(tab) {
            return allTabsLP.indexOf(tab) != -1 ? true : false;
        });
        tabs.splice(tabs.length - (tabs.length == 1 ? 1 : 2), 1);
    }
}
addEventListener("TabSelect", onTabSelect, false, tc);
addEventListener("TabClose", onTabClose, false, tc);



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//https://forum.mozilla-russia.org/viewtopic.php?pid=607274#p607274
//Автор: Dumby, bunda1 Версия: от 05-11-2014 19:47:41
//Описание: Kод открывает библиотеку как активную вкладку рядом с текущей вкладкой и открывает в в библиотеке:
//1. папку закладок которая была открыта перед закрытием библиотеки если в главном меню или в меню кнопки меню вы нажали Показать все закладки
//2. Загрузки или Неподшитые закладки если в главном меню или в меню кнопки меню вы нажали эти пункты,
//3. первую папку истории( Сегодня ) отсортированную по адресу если в главном меню или в меню кнопки меню вы нажали Показать весь журнал, в коде можно
// отключить сортировку по адресу и указать другую папку истории для открытия.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Открывать библиотеку во вкладке и последнюю активную папку библиотеки, от 05.11.2014. ............................
(function () {
   var historyFolderNum = 1;     // папка истории которую откроет код
   var sortHistoryFolder = true; // сортировать папку истории которую откроет код
     
   var command;
   const pn = "CB.lastUsedLibraryFolder";
   const library = "chrome://browser/content/places/places.xul";

   
   // Перехватывать открытие библиотеки и открывать её в вкладке рядом с текущей ....
   function libraryInTab(e) {
      command = e.target.getAttribute("oncommand");

      if ( !/showPlacesOrganizer|DownloadsUI|DownloadsPanel/.test( command ) ) return;
      if ( /showPlacesOrganizer|UnfiledBookmarks/.test( command ) && e.type == 'click' ) return;
           e.stopPropagation();
     
      // закрыть все вкладки библиотеки кроме первой ....
      var libTab = null;
      Array.slice( gBrowser.tabs ).forEach(function(tab) {
            if ( tab.linkedBrowser.currentURI.spec !== library ) return;
            !libTab ? libTab = tab : gBrowser.removeTab( tab );
      });
   
      // переместить или открыть библиотеку рядом с текущей вкладкой ....
      var selTab = gBrowser.selectedTab;
      if ( libTab !== selTab ) {
           if ( libTab && gBrowser.visibleTabs.indexOf( libTab ) == -1 )
                TabView.moveTabTo( libTab, TabView._window.GroupItems._activeGroupItem.id );
           libTab = libTab || gBrowser.addTab( library );         
           var pos = selTab._tPos + ( libTab._tPos > selTab._tPos );
           gBrowser.moveTabTo( libTab, pos );
           gBrowser.selectedTab = libTab;
           
           // если уже открытая библиотека была перемещена
           if ( !libTab.hasAttribute('busy') ) openLastUsedFolder();                         
           }
       else       
           openLastUsedFolder();  // если библиотека уже в текущей вкладке     
   };
   addEventListener("command", libraryInTab, true, window );
   addEventListener("click", libraryInTab, true, document.getElementById('appmenuSecondaryPane') );

   
   // Открывать и запоминать последнюю активную папку если библиотека открыта как вкладка ....
   function openLastUsedFolder( e ) {
      var win = e ? e.target.defaultView : content.document.defaultView;
      if ( win.location != library ) return;

      // получить нужную папку
      try { var value = cbu.getPrefs( pn ) } catch(e) { value = '' };
      if ( /DownloadsUI|DownloadsPanel/.test( command ) ) value = 'place:transition=7&sort=4';
      if ( /UnfiledBookmarks/.test( command ) ) value = 'place:folder=UNFILED_BOOKMARKS&excludeItems=1&expandQueries=0';

      // закрыть меню большой кнопки и кнопки загрузок
      setTimeout(function() {
         try { document.getElementById("appmenu-popup").hidePopup();
               document.getElementById("downloadsPanel").hidePopup();
             } catch(e) {}
      }, 10 );
           
      // открыть нужную папку используя рекурсию   
      (function f() {
         if ( win.location != library ) return;
         try {
             if ( /'History'/.test( command ) ) {
                  var doc = win.document;       
                  var view = doc.getElementById('placesList').view;                 
                 
                  if ( view ) view.selection.select( historyFolderNum ); // открыть указанную папку
                 
                  // сортировать папку истории по адресу
                  if ( sortHistoryFolder && view ) {                 
                       doc.getElementById('viewMenu').open = true;
                       doc.getElementById('viewSort').open = true;
                       doc.getElementById('viewMenu').open = false;
                       doc.getElementById('menucol_placesContentUrl').doCommand();
                       }
                  }
             else 
                  {         
                  win.PlacesOrganizer.location = value;
                  win.PlacesOrganizer._places.focus();
                  }                       
             }
         catch(e) { setTimeout(function() f(), 0) };
         
      })();
     
      // запоминать последнюю папку при закрытии библиотеки
      if ( e == undefined ) return;
      win.addEventListener("unload", function f(e) {       
          win.removeEventListener( e.type, f);
         
          var loc = win.PlacesOrganizer.location;
          /place:folder|place:sort/.test( loc ) && cbu.setPrefs( pn, loc );               
      });
   };
   addEventListener("DOMContentLoaded", openLastUsedFolder, false, gBrowser );
})();



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://forum.mozilla-russia.org/viewtopic.php?pid=668727#p668727
// При долгом клике СКМ открывать ссылку справа от текущей, от 22.11.2014.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(() => {
    const delay = 500;

    var longMiddleClick = false, mousedownTime = 0;
    var handler = {
        handleEvent: e => e.button == 1 && handler[e.type](),
        mousedown: () => mousedownTime = Date.now(),
        mouseup: () => setTimeout(() => longMiddleClick = false, 50,
            longMiddleClick = Date.now() - mousedownTime > delay
        )
    };
    for(var type of ["down", "up"]) addEventListener("mouse" + type, handler);
    addEventListener("TabOpen", e =>
        longMiddleClick && gBrowser.moveTabTo(e.target, gBrowser.selectedTab._tPos + 1)
    , false, gBrowser.tabContainer);
})();



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://forum.mozilla-russia.org/viewtopic.php?pid=626886#p626886
// Kод даёт возможность открывать закладки средним кликом на закладке не закрывая меню закладок. Код не работает в боковой панели закладок.
// Открывать закладки средним кликом в новой вкладке не закрывая меню закладок, от 16.09.2013. ................................
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(function() {
    const str = 'p"', rep = 'p" && !aEvent.button', obj = BookmarksEventHandler, func = obj.onClick;
    eval("BookmarksEventHandler.onClick = " + String.replace(func, str, rep));
    addDestructor(function() obj.onClick = func);
})();
;



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// https://forum.mozilla-russia.org/viewtopic.php?pid=667273#p667273
// Открывать средним кликом вкладки из Журнала (кроме "Показать весь журнал") в новой вкладке, не закрывая меню Журнал, от 6.11.2014.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(popup => {
    popup.checkForMiddleClick = (node, e) => {
        var trg = e.target;
        if (trg.getAttribute("disabled") == "true" || e.button != 1) return;
        popup.parentNode._placesView._onCommand(e);
        if (trg.mozMatchesSelector('#historyUndoPopup > [oncommand*="undoCloseTab"]')) {
            trg.classList.contains("restoreallitem") && trg.doCommand();
            popup.parentNode._placesView.populateUndoSubmenu();
            var menupopup = popup.querySelector('.recentlyClosedTabsMenu[disabled="true"] > menupopup');
            menupopup && menupopup.hidePopup();
        }
        else if (!trg.mozMatchesSelector("#goPopup > .bookmark-item"))
            closeMenus(trg);
    }
    addDestructor(() => delete popup.checkForMiddleClick);
})(document.getElementById("goPopup"));




////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//https://forum.mozilla-russia.org/viewtopic.php?pid=666510#p666510
//Автор: Dumby 02.11.2014 01:53:22
//Багфикс для бага 513180 - https://bugzilla.mozilla.org/show_bug.cgi?id=513180
//(по ENTER настройка browser.search.openintab=TRUE срабатывает и результаты поиска из searchbar-а открываются в новой вкладке, а по ЛКМ по значку лупы - в текущей).
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(bar => {
    if (!bar) return;
    var btn = document.getAnonymousElementByAttribute(bar, "anonid", "search-go-button");
    var prfx = 'event.button == 0 && gPrefService.getBoolPref("browser.search.openintab")\n\t'
        + '? doSearch(value, event.shiftKey ? "tabshifted" : "tab")\n\t: ';
    function setAttr(arg) btn.setAttribute("onclick", (arg ? "" : prfx) + "handleSearchCommand(event);");
    setAttr(); addDestructor(setAttr);
})(BrowserSearch.searchBar);



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Автоматически перезагружать вкладку+
//Версия от 01-04-2013 12:34:52 https://forum.mozilla-russia.org/viewtopic.php?pid=607565#p607565
//с изменением от 01-04-2013 16:55:35  https://forum.mozilla-russia.org/viewtopic.php?pid=607582#p607582
//Авторы: bunda1, Dumby
//Для изменения интервала перезагрузки меняете в коде значение константы reloadInterval
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

(function() {
    const reloadInterval = 5 * 60 * 1000;   // интервал перезагрузки задаётся в миллисекундах, 1 sek = 1000 ms

    const reloadButtonIcon = "data:image/x-icon;base64,AAABAAEADAwAAAEAIACYAgAAFgAAACgAAAAMAAAAGAAAAAEAIAAAAAAAcAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgIAAQECAAAAAAAAAAAAAAAAAAAAAAABAQIAAQICAAAAAAAAAAAAAAAAAAEBAQAAAAAEBggGDydSUhM6g40SOYONCyNRUgEDCAYAAAAAAAEBAQAAAAAAAQICAAAAAA4XIR4nXLvNJGnx/yNq9/0jaff9I2jx/x1Suc0FDh4eAAAAAAABAQIAAAAACAoGBDNluMopaOn/LWnf/jJnw90zacTdLmvf/Stq6v8jU7PJAQIEAwAAAAAAAAAAJDpVVTV27f8ta+H/Jkh9hAgJBAEGCAQAK09+gzJw4/8vb+v/ESdPVAAAAAAAAAAANFmJjDR7/P8tZcncBQcKCAAAAAAAAAAACQwLBzhyzNwyefv/HUKFjAAAAAAAAAAAOV+LjDyI//8wbc3bAgUJBgEBAAAAAAABCAsKBjx5z9s6hf//IkqIjAAAAAAAAAAAMEhcVk6c//8+ivH/J1GHigMEBAIBAAAALlV/f0SP8/9Flf//HDhZVgAAAAAAAAAACgoIBVqXzcpPqP//QHq5wBYgJR0/d7C0TJ/8/06j//9GiMzNBAYIBQAAAAABAQICAAAAABggIx5mqt/iOWiNiyAvNjBpv///Xbj//1KWz9ESHSUhAAAAAAEBAgIAAAAAAQEBAQAAAAAJCwoHOllqZRYgJR0mO0VANVVnZAcJCAYAAAAAAQEBAQAAAAAAAAAAAAAAAAECAgIBAQECAAAAAAEBAgEAAAEBAAAAAAABAQIBAQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
    const reloadButtonStyle = '-moz-appearance: none !important; margin-left: -1px !important; margin-right: -1px !important; padding: 0 !important; border: none !important;';
    const reloadButtonClass = "cb-reload-icon";

    const tabContextMenu = document.getElementById("tabContextMenu");
    const menuitemInsertPoint = document.getElementById("context_bookmarkAllTabs");
    const menuitemId = "tabAutoReload";
    const attr = "auto-reload-interval";

    function createNode(nodeName, attrs) {
        var node = document.createElement(nodeName);
        for (var attr in attrs) node.setAttribute(attr, attrs[attr]);
        return node;
    }
    var menuitem = createNode("menuitem", {
        id: menuitemId,
        type: "checkbox",
        label: "Автоматически перезагружать"
    });
    function onPopupShowing(e) {
        var popup = e.target;
        if (popup != tabContextMenu) return;
        popup.insertBefore(menuitem, menuitemInsertPoint);
        var tab = popup.triggerNode;
        menuitem.hidden = tab.linkedBrowser.currentURI.scheme.slice(0, 4) != "http";
        menuitem.setAttribute("checked", tab.hasAttribute(attr));
    }
    function onPopupHidden(e) {
        var popup = e.target;
        if (popup == tabContextMenu) popup.removeChild(menuitem);
    }
    function reload(tab) {
        gBrowser.reloadTab(tab);
    }
    function toggleAutoReload(e) {
        var tab = e.target.parentNode.triggerNode;
        var interval = tab.getAttribute(attr);
        interval ? clearTab(tab) : initTab(tab);
    }
    function initTab(tab, noInt) {
        if (!noInt) {
            var interval = setInterval(reload, reloadInterval, tab);
            tab.setAttribute(attr, interval);
        }
        var n = tab.tcn = {};
        var nodes = {
            parent: "tab-content",
            throbber: "tab-throbber",
            image: "tab-icon-image",
            label: "tab-text tab-label"
        }
        for (var prop in nodes)
            n[prop] = document.getAnonymousElementByAttribute(tab, "class", nodes[prop]);

        setTimeout(function() {
            n.clonedLabel = n.label.cloneNode(false);
            n.label.hidden = true;
            n.parent.insertBefore(n.clonedLabel, n.label);
        }, 500);

        n.button = createNode("toolbarbutton", {
            class: reloadButtonClass,
            image: reloadButtonIcon,
            style: reloadButtonStyle
        });

        n.parent.removeChild(n.throbber)
        n.parent.insertBefore(n.button, n.image);
        addEventListener("mousedown", onReloadButtonClick, true, tab);
    }
    function clearTab(tab, noInt) {
        if (!noInt) {
            clearInterval(tab.getAttribute(attr));
            tab.removeAttribute(attr);
        }
        removeEventListener("mousedown", onReloadButtonClick, true, tab);
        var n = tab.tcn;
        if (!n) return;

        n.parent.removeChild(n.clonedLabel);
        n.label.hidden = false;

        n.parent.removeChild(n.button);
        n.throbber.removeAttribute("busy");
        n.parent.insertBefore(n.throbber, n.image);
        delete tab.tcn;
    }
    function onTabMove(e) {
        var tab = e.target;
        if (!tab.hasAttribute(attr)) return;
        clearTab(tab, true);
        initTab(tab, true);
    }
    function onReloadButtonClick(e) {
        var node = e.originalTarget;
        if (node.className != reloadButtonClass || e.button) return;
        e.stopPropagation();
        clearTab(e.target);
    }
    function onTabClose(e) {
        var tab = e.target;
        var interval = tab.getAttribute(attr);
        if (!interval) return;
        clearInterval(interval);
        removeEventListener("mousedown", onReloadButtonClick, true, tab);
    }
    function onTabRestored(e) {
        var tab = e.target;
        if (tab.hasAttribute("last-tab") && tab.hasAttribute(attr) && !tab.tcn)
            initTab(tab);
    }

    Cc["@mozilla.org/browser/sessionstore;1"]
        .getService(Ci.nsISessionStore)
        .persistTabAttribute(attr);

    setTimeout(function() {
        Array.slice(gBrowser.tabs).forEach(function(tab) {
            if (tab.hasAttribute(attr))
                tab.tcn ?
                addEventListener("mousedown", onReloadButtonClick, true, tab) :
                initTab(tab);
        });
    }, 500);
    [
        ["command", toggleAutoReload, false, menuitem],
        ["popupshowing", onPopupShowing, false, tabContextMenu],
        ["popuphidden", onPopupHidden, false, tabContextMenu],
        ["TabClose", onTabClose, false, gBrowser.tabContainer],
        ["TabMove", onTabMove, false, gBrowser.tabContainer],
        ["SSTabRestored", onTabRestored, false, gBrowser.tabContainer]

    ].forEach(function(args) { addEventListener.apply(this, args) });
})();



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CB drag and go( Firefox17+ )
//Версия: от 15.10.2014
//https://forum.mozilla-russia.org/viewtopic.php?pid=664249#p664249
//Автор: bunda1
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function dragAndGo(e) {
   
   // стоп, если внутренне страницы или страница с файлами
   var protocol = content.location.protocol;
   if ( ["about:", "chrome:", "jar:", "data:", "file:"].indexOf( protocol ) !== -1 ) return;


   switch ( e.type ) {
      case "dragstart":
            self.startPoint = {x:e.screenX, y:e.screenY}; break; // получить начальные координаты перетаскивания

      case "dragover":
            Cc["@mozilla.org/widget/dragservice;1"].getService(Ci.nsIDragService).getCurrentSession().canDrop = true; break;

      case "drop": {           
            // стоп, если перетаскивается в поле текстового ввода или из-за пределов окна браузера       
            var name = e.target.localName;
            if ( !self.startPoint || ["text", "input", "textarea", "password"].indexOf( name ) !== -1 ) return;                   

            e.preventDefault();

            // получить направление перетаскивания, L налево, R направо, U верх, D вниз                                       
            var [subX, subY] = [e.screenX - self.startPoint.x, e.screenY - self.startPoint.y];
            var [distX, distY] = [(subX > 0 ? subX : (-subX)), (subY > 0 ? subY : (-subY))];
            var direction = distX > distY ? (subX < 0 ? "L" : "R") : (subY < 0 ? "U" : "D");
            self.startPoint = 0;
           
            // стоп, если перетаскивается меньше минимального расстояния
            if ( distX > distY ? distX < 12 : distY < 12 ) return;


            // Ссылки ....
            if ( e.dataTransfer.types.contains("text/x-moz-url") ) {
                 var link = e.dataTransfer.getData("text/x-moz-url").split("\n")[0];
                     
                 if ( direction == "U" ) {
                      // сохранить ссылку
                      //saveImageURL( link, "save", null, false, false, null, content.document);
                      //return;
                      }
                 if ( direction == "D" ) {
                      // открыть ссылку в новой фоновой странице
                      //gBrowser.addTab( link );
                      //return;
                      }   
                 if ( direction == "L" ) {
                      // копировать ссылку в буфер обмена
                      gClipboard.write( link );
                      }
                 if ( direction == "R" ) {
                      // открыть ссылку в новой активной странице
                      //gBrowser.selectedTab = gBrowser.addTab( link );
                      //return;
                     
                      // сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C:
                      //saveImageURL( link, 0, 0, 0, 1, null, content.document );
                      //return;
                      }     
                 }
                               
            // Изображения ....
            if ( e.dataTransfer.types.contains("application/x-moz-file-promise-url") ) {
                 var img = e.dataTransfer.getData("application/x-moz-file-promise-url").split("\n")[0]

                 if ( direction == "U" ) {
                      //  поиск похожих изображений на google.com в новой активной вкладке     
                      gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/searchbyimage?image_url=" + img );                                         
                      return;
                      }
                 if ( direction == "D" ) {
                      // сохранить изображение
                      saveImageURL( img, "save", null, false, false, null, content.document);
                      return;
                      }
                 if ( direction == "L" ) {
                      // открыть изображение в новой фоновой странице
                      gBrowser.addTab( img );
                      return;
                      }
                 if ( direction == "R" ) {
                      // открыть изображение в новой активной странице
                      gBrowser.selectedTab = gBrowser.addTab( img );                 
                      return;
                     
                      // сохранить изображение без запроса на место сохранения в папке загрузки или на диск C:
                      //saveImageURL( img, 0, 0, 0, 1, null, content.document );
                      //return;
                      }       
                 }
                                     
            // Выделенный текст ....
            if ( e.dataTransfer.getData("text/unicode") ) {
                 var sel = e.dataTransfer.getData("text/unicode");                             

                 if ( direction == "U" ) {
                      // поиск текста в google в новой активной странице
                      gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/search?q=" + sel );                                         
                      return;
                      }     
                 if ( direction == "D") {
                      // поиск текста на текущей странице, как по "CTRL F"
                      gFindBar.onFindCommand( sel );
                 
                      // поиск текста в google в новой фоновой странице
                      //gBrowser.addTab("http://www.google.com/search?q=" + escape( convertFromUnicode("UTF-8", sel )) );
                      //return;
                      }
                 if ( direction == "L" ) {
                      // копировать в буфер обмена
                      gClipboard.write( sel );
                     
                      }     
                 if ( direction == "R" ) {
                      // открыть текстовые ссылки в новой активной странице
                      gBrowser.selectedTab = gBrowser.addTab( sel );                           
                      return;
                     
                      // сохранить текст в .txt файл
                      //var fileTitle = content.document.title.slice(0, 50) + '  ' + (new Date()).toLocaleFormat("%H·%M·%S");
                      //saveURL("data:text/plain," + encodeURIComponent( content.location + ("\r\n\r\n" + sel )),
                      //                                  fileTitle + ".txt", null, false, false, null, content.document);                   
                      } 
                 }               
            }
    }
};
["dragstart", "dragover", "drop"].forEach(function(type) addEventListener(type, dragAndGo, false, gBrowser) );


// Подсказка кнопки ............................................................................
this.tooltipText = "CB drag and go \nЗапускает жести мыши для ЛКМ на странице \nЛ: Редактировать эту кнопку";

P.S. Вот сейчас заметил - после аварийной перезагрузки браузера вкладка "самоудалилась"...

Отредактировано Александр Колесников (04-02-2015 19:55:06)

Отсутствует

 

№6805-02-2015 14:31:39

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 35.0

Re: [CB]Undo Close Tabs

Александр Колесников
Ааа... понятно. Сходу не воспроизвелось (но я без кнопок проверял), буду думать.
А на будущее лучше в отдельную тему писать: https://forum.mozilla-russia.org/viewtopic.php?id=57329


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№6924-12-2015 00:53:24

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 141
UA: Firefox 43.0

Re: [CB]Undo Close Tabs

Подскажите как поменять иконку кнопки, подставляю свою в "изображение" редактирование кнопки, и ничего не меняется!

Отсутствует

 

№7024-12-2015 01:27:02

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 43.0

Re: [CB]Undo Close Tabs

tom911 пишет:

поменять иконку кнопки

Надо отредактировать вот эту строку в коде:

Выделить код

Код:

list-style-image: url("data:image/png;base64,...") !important;

Там по три варианта иконок для обычных и больших значков.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7124-12-2015 15:07:50

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 141
UA: Firefox 43.0

Re: [CB]Undo Close Tabs

Infocatcher пишет:

скрытый текст

tom911 пишет:

поменять иконку кнопки

Надо отредактировать вот эту строку в коде:

Выделить код

Код:

list-style-image: url("data:image/png;base64,...") !important;

Там по три варианта иконок для обычных и больших значков
.


Может подскажите как переместить кнопку в url

Отредактировано tom911 (24-12-2015 15:11:20)

Отсутствует

 

№7224-12-2015 15:17:44

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 43.0

Re: [CB]Undo Close Tabs

tom911 пишет:

Может подскажите как переместить кнопку в url

В смысле кнопку?
Там надо открыть оригинальный набор иконок в браузере, вот этот:

Выделить код

Код:

data:image/png;base64,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

Сохранить, отредактировать, потом в редакторе кнопки сконвертировать в base64 и вставить вместо оригинальной ссылки.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7320-02-2016 01:51:33

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 195
UA: unknown 0.0

Re: [CB]Undo Close Tabs

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


Portable SeaMonkey 2.39 forever

Отсутствует

 

№7425-02-2016 14:35:45

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4135
UA: Firefox 44.0

Re: [CB]Undo Close Tabs

emlen пишет:

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

Не знаю, больше никто такого не просил никогда.
И потом, как тогда предполагается восстанавливать вкладки целиком?
Плюс там прокрутка запоминается и прочее... нужно будет вручную редактировать даные сессии – не факт, что всегда будет корректно работать.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№7514-12-2016 14:55:38

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 353
UA: Firefox 50.0

Re: [CB]Undo Close Tabs

Заметил сейчас, [firefox] 50-й. СКМ по кнопке очищает историю закрытых вкладок, но после перезапуска [firefox] они снова появляются в списке/истории. Если очищать через меню ПКМ --> Очистить историю закрытых вкладок, то после перезапуска [firefox] в истории чисто. Это только у меня так?
P.S. Возможно, не всегда чисто даже если удалять историю через меню ПКМ. Не могу понять зависимости...

Отредактировано xrun1 (14-12-2016 20:14:52)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]