nfmzkvmx
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору thejustsoul Цитата: Оно будет само обновляться? | Нет. Но оно и не надо: вплоть до текущих ночнушек эта версия аддона и так работает, а дальше, с 57-ой версии фф, грядет XUL'огеддон и XPCOM'капец и CB, в любом случае, конец придет. Цитата: Это вроде создает закладки из открытых вкладок, такое есть в тор браузере, только там оно встроенное. Называется "Все вкладки в закладки". | Это и так и фф есть. Загляните в панели меню в "Закладки". Или Ctrl + Shift +B. Но это только для текущего окна и закрепленные вкладки автоматом отфильтруются, так что засунул эту функцию в кнопку: Код: ((menuPopup, tabMenu) => { this._handleClick =()=> menuPopup.openPopup(this, "after_start"); var o = { // Code from: https://github.com/Infocatcher/Private_Tab/issues/228#issuecomment-238963363 get windows() { return (function*() { var ws = Services.wm.getEnumerator("navigator:browser"); while(ws.hasMoreElements()) yield ws.getNext(); })(); } }; var saveToBookmarks = filter => { var tabURIs = []; // var folderName = 'Вкладки ' + ((typeof filter != 'boolean') ? '' : (filter ? 'закрепленные ' : 'незакрепленные')) + '[' + new Date().toLocaleFormat() + ']'; for(var w of o.windows) for(var tab of (typeof filter != 'boolean') ? w.gBrowser.tabs : [...w.gBrowser.tabs].filter(tab => tab.pinned == filter)) { var br = tab.linkedBrowser; var uri = br.currentURI; var title = br.contentTitle || tab.label; tabURIs.push({uri, title}); } return PlacesUIUtils.showBookmarkDialog({action: "add", type: "folder",/*title: folderName,*/ URIList: tabURIs}, window); }; var copyTabs = (filter, title) => { var tabLinks = []; for(var w of o.windows) for(var tab of (typeof filter != 'boolean') ? w.gBrowser.tabs : [...w.gBrowser.tabs].filter(tab => tab.pinned == filter)) { var br = tab.linkedBrowser; title ? tabLinks.push('Заголовок: ' + (br.contentTitle || tab.label) + '\nАдрес: ' + br.currentURI.spec + '\n') : tabLinks.push(tab.linkedBrowser.currentURI.spec); } return gClipboard.write(tabLinks.join('\n')); }; [ ['menuseparator'], ['menuitem', 'Скопировать адреса закрепленных вкладок', true], ['menuitem', "Скопировать адреса незакрепленных вкладок", false], ['menuseparator'], ['menuitem', "Скопировать адреса всех вкладок", null] ].forEach(([type, lbl, filter]) => { var node = tabMenu.appendChild(document.createElement(type)); lbl && node.setAttribute('label', lbl); if (typeof filter != 'undefined') node.onclick = e => copyTabs(filter, e.ctrlKey); addDestructor(()=> tabMenu.removeChild(node)) }); [ ['menuitem', 'Сохранить закрепленные вкладки в закладки', true], ['menuitem', "Сохранить незакрепленные вкладки в закладки", false], ['menuseparator'], ['menuitem', "Сохранить все вкладки в закладки", null] ].forEach(([type, lbl, filter]) => { var node = menuPopup.appendChild(document.createElement(type)); lbl && node.setAttribute('label', lbl); if (typeof filter != 'undefined') node.onclick = e => {e.stopPropagation(); saveToBookmarks(filter)}; }); })(this.appendChild(document.createElement('menupopup')), document.getElementById('tabContextMenu')); | Теперь код должен быть исключительно в своей отдельной кнопке! При клике ЛКМ по кнопке - откроется меню с пунктами для вызова диалога сохранения всех/закрепленных/незакрепленных вкладок, во всех окнах, в закладки. | Всего записей: 186 | Зарегистр. 09-04-2017 | Отправлено: 19:54 14-06-2017 | Исправлено: nfmzkvmx, 20:08 14-06-2017 |
|