Stakhovsky
var selTxt = document.commandDispatcher.focusedWindow.getSelection().toString(); PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle + ' /' +selTxt + '/ [' + folderTitle + ']');
Заменить 10-ую на это.
Отсутствует
Stakhovsky
Рестарт. И я подумал, лучше так
var getSel = document.commandDispatcher.focusedWindow.getSelection().toString(); var selTxt = ''; if (getSel) selTxt = ' :: ' + getSel + ' :: '; PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle + selTxt + '[' + folderTitle + ']');
Добавлено 28-04-2016 02:05:30
- если на странице ничего не выделено, то ничего не добавится.
Отредактировано turbot (28-04-2016 02:05:30)
Отсутствует
turbot
Выделяю текст, кликаю два раза на папке закладок, закладка добавляется, название папки добавляется, выделенный текст нет.
Так же дожно быть?:
// Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014. ................................ addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); var getSel = document.commandDispatcher.focusedWindow.getSelection().toString(); var selTxt = ''; if (getSel) selTxt = ' :: ' + getSel + ' :: '; PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle + selTxt + '[' + folderTitle + ']'); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); });
Отредактировано Stakhovsky (28-04-2016 02:12:48)
Отсутствует
Работает.
Дело в каком то стиле, разберусь.
Спасибо большое. Крутота)
Добавлено 28-04-2016 02:45:21
Не разберусь. Есть кнопка и стиль которые связаны, выполняют функцию показа панели закладок при клике в адресной строке.
Не могли бы вы пожалуйста посмотреть где конфликт?
Кнопка (там же где и все (в одной кнопке)), инициализация:
// появление панели закладкок при клике в адрес строке ............... var PToolbar = document.getElementById("PersonalToolbar"); var UrlBar = document.getElementById("urlbar"); var NewTabButton = document.getElementById("new-tab-button"); var TabsNewTab = document.getAnonymousElementByAttribute(document.getElementById("tabbrowser-tabs"), "class", "tabs-newtab-button"); if (PToolbar.collapsed) { setToolbarVisibility(PToolbar, PToolbar.collapsed); } var ToolbarsVisibility = { ShowToolbar: function(event) { if (PToolbar.collapsed) { setToolbarVisibility(PToolbar, PToolbar.collapsed); } PToolbar.setAttribute("toolbarshow", true); gBrowser.addEventListener("mouseover", ToolbarsVisibility.ToolbarCollapse, false); }, ToolbarCollapse: function (event) { gBrowser.removeEventListener("mouseover", ToolbarsVisibility.ToolbarCollapse, false); PToolbar.removeAttribute("toolbarshow"); } }; addEventListener("mousedown", e=> {e.button ==0 && ToolbarsVisibility.ShowToolbar();}, false, UrlBar); addEventListener("mousedown", e=> {e.button ==0 && ToolbarsVisibility.ShowToolbar();}, false, NewTabButton); addEventListener("mousedown", e=> {e.button ==0 && ToolbarsVisibility.ShowToolbar();}, false, TabsNewTab);
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); #main-window:not([customizing]) #PersonalToolbar { position: fixed !important; width: 100% !important; visibility: collapse !important; } #main-window:not([customizing]) #PersonalToolbar:-moz-lwtheme { border-color: rgba(0,0,0,.3) !important; -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar") !important; } #main-window:not([customizing]) #PersonalToolbar:-moz-lwtheme-brighttext { background-color: black !important; color: white !important; } #main-window:not([customizing]) #PersonalToolbar[toolbarshow], #main-window:not([customizing]) #PersonalToolbar:hover { visibility: visible !important; }
Отредактировано Stakhovsky (28-04-2016 02:52:31)
Отсутствует
Замените
var getSel = document.commandDispatcher.focusedWindow.content.document.getSelection().toString();
Отсутствует
turbot, можно вас попросить еще пожалуйста сделать добавление перед названием вкладки название домена?
// Двойным левым кликом на папке закладок добавлять закладку в папку закладок + название родительской папки + выделенный на странице текст, от 09.05.2014. ................................ addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); var getSel = document.commandDispatcher.focusedWindow.getSelection().toString(); var selTxt = ''; if (getSel) selTxt = ' :: ' + getSel + ' :: '; PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle + selTxt + '[' + folderTitle + ']'); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); });
Отредактировано Stakhovsky (17-05-2016 11:08:18)
Отсутствует
Stakhovsky
addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var hostName = window.gBrowser.selectedBrowser.contentWindow.location.hostname; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var parentFolderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); var getSel = document.commandDispatcher.focusedWindow.content.document.getSelection().toString(); var selTxt = ''; if (getSel) selTxt = ' :: ' + getSel + ' :: '; PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, '[' + hostName + ']' + docTitle + selTxt + '[' + folderTitle + ']'); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); });
Добавлено 17-05-2016 18:45:33
А вы не пробовали использовать ScrapBook X? Он больше подходит для сохранения текста/контента/страниц в виде закладок.
Отредактировано turbot (17-05-2016 18:45:33)
Отсутствует
turbot
А вы не пробовали использовать ScrapBook X?
Когда пробовал на то время там нельзя было сохранять станицу как один файл. Создавались в папке сохранения подпапки на каждуй сохраняемую странци, это не понравилось, а перевод в формат мафф нельзя было делать пакетно, а только по одному сайту. Это собственно и не понравилось. Очень понравился в Скрап Буке полнотекстовый контекстный поиск, когда можно искать внутри всех сохраненных страниц, если бы можно было такое делать с мафф форматом перешел бы сраху, а так пока остановился на сохранении сайтов в мафф с помощью этого аддона save-file-to.
Код:
Ооо, супер, спасибо большое.
Единственное если возможно пожалуйста, еще добавить вид текста, что бы лучше визуально отличать а то теперь много разного текста получается, если можно отображать домен жирным текстом, а добавляемый выделенный текст сделать подчеркнутым?
Отредактировано Stakhovsky (18-05-2016 11:52:30)
Отсутствует
Stakhovsky пишетможно отображать домен жирным текстом, а добавляемый выделенный текст сделать подчеркнутым?
Нет, нельзя. Никак.
Можно имхо (в принципе) домен acceltext'ом отображать в правой части менюитема
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Stakhovsky
Можно имхо (в принципе) домен acceltext'ом отображать в правой части менюитема
Вот, чертовы массивы и регулярки, как смог:
addEventListener('popupshowing', (e)=> { Array.slice(document.querySelectorAll('menupopup[placespopup="true"]')).forEach((popup)=> { if (e.target !== popup) return; Array.slice(popup.querySelectorAll('menuitem.bookmark-item')).forEach((mItem)=> { var label = mItem.label; var host = label.match(/^(\[([\w.-]+)\])/); if (!host || mItem.hasAttribute('acceltext')) return; mItem.setAttribute('acceltext', label.split(/^(\[([\w.-]+)\])/)[1]); }) }) }, false, window);
+ стиль:
Отредактировано turbot (19-05-2016 03:53:06)
Отсутствует
turbot
Ну вы даете, спасибо большое)
Сейчас получилось с обеих сторон, и перед названием закладки домен и в конце справа жирный.
Если нельзя жирный поставить в левую часть в начало, тогда можете пожауйста удалить тот который в начале?
Отредактировано Stakhovsky (19-05-2016 10:50:18)
Отсутствует
удалить тот который в начале
addEventListener('popupshowing', (e)=> { Array.slice(document.querySelectorAll('menupopup[placespopup="true"]')).forEach((popup)=> { if (e.target !== popup) return; Array.slice(popup.querySelectorAll('menuitem.bookmark-item')).forEach((mItem)=> { var label = mItem.label; if (!label.match(/^(\[([\w.-]+)\])/) || mItem.hasAttribute('acceltext')) return; var host = label.split(/^(\[([\w.-]+)\])/)[1]; mItem.setAttribute('acceltext', host); mItem.label = label.split(host)[1]; }) }) }, false, window);
Отсутствует
Stakhovsky
Безделье, пиво и вечер пятницы творят чудеса.
addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var hostName = '[hst]' + window.gBrowser.selectedBrowser.contentWindow.location.hostname + '[hst]'; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var parentFolderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); var getSel = document.commandDispatcher.focusedWindow.content.document.getSelection().toString(); var selTxt = ''; if (getSel) selTxt = '[txt] :: ' + getSel + ' :: [txt]'; PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, hostName + docTitle + selTxt + '[' + folderTitle + ']'); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); }); addEventListener('popupshowing', e=> { var popup = e.originalTarget; if (!(popup.localName == 'menupopup' && popup.hasAttribute('placespopup'))) return; Array.slice(popup.querySelectorAll('menuitem.bookmark-item')).forEach(mItem=> { var label = mItem.label; if (!label.startsWith('[hst]')) return; var host = label.split(/\[hst\](.*)\[hst\]/)[1]; mItem.setAttribute('acceltext', host); if (label.indexOf('[txt]') !== -1) { label = encodeURIComponent(label); mItem.label = decodeURIComponent(label.replace(/%5Bhst%5D.*%5Bhst%5D|%5Btxt%5D.*%5Btxt%5D/g, '')); } else mItem.label = label.split(/\[hst\].*\[hst\]/)[1]; }) }, false, window); addEventListener('popupshowing', e=> { var bhTltp = e.originalTarget; var tipTitle = document.getElementById('bhtTitleText'); var tipTxt = tipTitle.textContent; if (tipTxt.startsWith('[hst]')) { var hLabel = document.createElement('label'); hLabel.id = 'bhtHst'; hLabel.textContent = tipTxt.split(/\[hst\](.*)\[hst\]/)[1]; bhTltp.appendChild(hLabel); if (tipTxt.indexOf('[txt]') !== -1) { tipTxt = encodeURIComponent(tipTxt); var tLabel = document.createElement('label'); tLabel.id = 'bhtTxt'; tLabel.textContent = decodeURIComponent(tipTxt.split(/%5Btxt%5D(.*)%5Btxt%5D/)[1]); bhTltp.appendChild(tLabel); tipTitle.textContent = decodeURIComponent(tipTxt.replace(/%5Bhst%5D.*%5Bhst%5D|%5Btxt%5D.*%5Btxt%5D/g, '')); } else tipTitle.textContent = tipTxt.split(/\[hst\].*\[hst\]/)[1]; bhTltp.addEventListener('popuphiding', function func() { if (hLabel) bhTltp.removeChild(hLabel); if (tLabel) bhTltp.removeChild(tLabel); bhTltp.removeEventListener('popuphiding', func); }) } }, false, document.getElementById('bhTooltip'));
[hst]forum.mozilla-russia.org[hst][CB]Двойным левым кликом добавить закладку в папку[txt]должно стать так[txt][Mozilla]
Тогда будет так:
Отредактировано turbot (21-05-2016 08:04:51)
Отсутствует
Стиль отклеиился при отправке
menuitem.bookmark-item .menu-iconic-accel, #bhTooltip #bhtHst { font-weight: bold !important; } #bhTooltip #bhtTxt { font-style: italic!important; }
Отсутствует
turbot Класс) Спасибо, а я думал попросить убрать квадратные скобки, но не решился, теперь вообще огонь)
Добавлено 21-05-2016 01:40:06
А выделенный текст можно что бы так же отображался и в названии вкладки, а не только при наведении?
Добавлено 21-05-2016 01:56:07
OFF
А перенос названия закладки что бы в две строки было нельзя никак сделать?
Тут вот Vitaliy V. как пробовал, но не совсем получилось, перенос пропадает если откл/вкл панель.
Там получается при включении панели срабатывает какой то код который перекрывает код стиля который делает перенос?
Отредактировано Stakhovsky (21-05-2016 02:03:21)
Отсутствует
А выделенный текст можно что бы так же отображался и в названии вкладки, а не только при наведении?
Замените на
А перенос названия закладки что бы в две строки было нельзя никак сделать?
Не, не осилю. Если только снова пиво и вдохновение не посетят.
Отсутствует