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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Двойным левым кликом добавить закладку в папку закладок.

№5121-05-2016 02:31:09

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

Stakhovsky
Ой, перебор уже, видимо.

Выделить код

Код:

      mItem.label = label.replace(/\[hst\].*\[hst\]|\[txt\]/g, '');

и это замените тогда, чтоб визуально отбивать текст

Выделить код

Код:

   if (getSel) selTxt = '[txt] :: ' + getSel + ' :: [txt]';

Отсутствует

 

№5221-05-2016 02:35:37

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 45.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

turbot
:) Теперь просто песня)) Спасибо.

Отсутствует

 

№5321-05-2016 04:25:59

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

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/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'));


:dumb:

UPD: "Прооптимизировал", насколько смог. :rolleyes:

Может сюда заглянет Dumby или bunda1 и наставят, как тут можно было бы удалить листенер на popuphiding, для анонимной функции.
arguments.callee deprecated и вообще, а с чертовым handleEvent никак не разберусь, чтоб this впихнуть.

Отредактировано turbot (21-05-2016 08:01:46)

Отсутствует

 

№5422-05-2016 21:01:44

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 45.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

turbot ага, спасибо.

Отредактировано Stakhovsky (22-05-2016 21:02:01)

Отсутствует

 

№5524-05-2019 12:55:18

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

У меня к этой кнопке в конце добавлен код gBrowser.removeCurrentTab();
Чтобы после добавления вкладки она закрывалась.

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

Выделить код

Код:


// Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 15.08.2016. ......................
addEventListener("dblclick", (e, targ = e.originalTarget)=> {     
   if ( e.button || !targ._placesNode || !PlacesUtils.nodeIsFolder(targ._placesNode) ) return;          
   
   var docTitle = (content.document.title || gBrowser.mCurrentTab.label).substr(0, 50);
   var folderId = PlacesUtils.getConcreteItemId(targ._placesNode);
   var folderTitle = PlacesUtils.bookmarks.getItemTitle(folderId);
   var currentURI = Services.io.newURI(content.location, null, null);
   PlacesUtils.bookmarks.insertBookmark(folderId, currentURI, 0, docTitle);  

   // всплывающая подсказка ....
   var favicon = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/Portrait.png";
   Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   .showAlertNotification(favicon, "Добавил в папку " + folderTitle + ":", docTitle);

   document.getElementById("contentAreaContextMenu").hidePopup(); 
   gBrowser.removeCurrentTab();
});


А можно пожалуйста поставить таймер перед срабатыванием этого кода на пол секунды или секунду?
Потому что другое дополнение не успевает делать скриншот страницы для эскиза закладки.

Отсутствует

 

№5624-05-2019 13:34:58

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 60.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

Выделить код

Код:

setTimeout(()=> { gBrowser.removeCurrentTab() }, 500);

Отсутствует

 

№5724-05-2019 14:38:12

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

bunda1
Спасибо.

Отсутствует

 

№5805-06-2019 22:23:48

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

bunda1
Можно вас попросить еще изменить добавление двойным левым кликом на одинарным правым?

Отсутствует

 

№5905-06-2019 22:32:16

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 60.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

Что значит одинарным правым?

Отсутствует

 

№6005-06-2019 22:34:50

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

bunda1
Просто правым кликом по папке закладок, не двойным.

Отредактировано Stkvsky (05-06-2019 22:35:28)

Отсутствует

 

№6105-06-2019 22:37:10

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 60.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

Stkvsky пишет:

bunda1
Просто правым кликом по папке закладок, не двойным.

Ну а контекстно меню папки закладок?

Отсутствует

 

№6205-06-2019 22:42:38

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

bunda1
Ну я им очень редко пользуюсь, если очень надо будет то вызову где нибудь в другом месте
в боковой панели ctrl+b или библиотеке shift+ctrl+b
или оно вообще нигде не будет работать?
Если да тогда можно ли сделать его вызов долгим левым кликом?

Отсутствует

 

№6306-06-2019 08:52:48

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4780
UA: Firefox 60.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

Stkvsky пишет:

bunda1
Можно вас попросить еще изменить добавление двойным левым кликом на одинарным правым?

Выделить код

Код:

// Правым кликом на папке закладок добавлять закладку в папку закладок, от 06.06.2019. ......................
addEventListener("click", (e, targ = e.originalTarget)=> {     
   if ( e.button != 2  || !targ._placesNode || !PlacesUtils.nodeIsFolder(targ._placesNode) ) return;          
   
   var docTitle = gBrowser.selectedTab.label.substr(0, 50);
   var folderId = PlacesUtils.getConcreteItemId(targ._placesNode);
   var folderTitle = PlacesUtils.bookmarks.getItemTitle(folderId);
   var currentURI = Services.io.newURI(gBrowser.currentURI.spec, null, null);
   PlacesUtils.bookmarks.insertBookmark(folderId, currentURI, 0, docTitle);  

   // всплывающая подсказка ....
   var favicon = gBrowser.selectedTab.image || "chrome://global/skin/icons/Portrait.png";
   Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   .showAlertNotification(favicon, "Добавил в папку " + folderTitle + ":", docTitle);

   setTimeout(()=> { document.getElementById("placesContext").hidePopup() }, 50); 
});

Добавлено 06-06-2019 08:53:57

Stkvsky пишет:

bunda1
Ну я им очень редко пользуюсь, если очень надо будет то вызову где нибудь в другом месте
в боковой панели ctrl+b или библиотеке shift+ctrl+b
или оно вообще нигде не будет работать?

Нет, в боковой панели точно работать будет.

Отредактировано bunda1 (06-06-2019 08:53:57)

Отсутствует

 

№6406-06-2019 10:34:29

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

bunda1
Отлично, спасибо.

Отсутствует

 

№6506-06-2019 11:06:54

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1105
UA: Firefox 42.0

Re: [CB]Двойным левым кликом добавить закладку в папку закладок.

В боковой панели кстати работает

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Двойным левым кликом добавить закладку в папку закладок.

Board footer

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