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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

№111-01-2014 04:58:24

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

[CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

Показать или спрятать пароль в окошке вода двойным кликом мыши ( Firefox 17+ )
Автор: bunda1
Версия: от 11.01.2014.
Описание: код даёт возможность двойным кликом мыши показать или спрятать пароль в полях вода пароля на страницах и окошках аутентификации входа на страницу или в других подобных окошках.
Использование: создайте новую Custom Buttons кнопку и положите код в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Показать или спрятать пароль в окошке вода двойным кликом мыши, от 11.01.2014. ................................
(function () {
 
   // Наблюдатель следит за открытием всех окон ....
   function winObs( subject ) {   
   
      subject.addEventListener("load", function l(e) {
         this.removeEventListener( e.type, l );   
      
         var passTextbox = subject.document.getElementById('password1Textbox');      
         if ( !passTextbox ) return;

         // добавлять и удалять обработчик двойного клика для окошка аутентификации входа на страницу
         passTextbox.addEventListener("dblclick", handleDblClick, false );          
         this.addEventListener("unload", function u(e) {
             this.removeEventListener(e.type, u );
             passTextbox.removeEventListener("dblclick", handleDblClick, false );
         })  
      })
   };
   Services.ww.registerNotification(winObs);
   addDestructor(function() { Services.ww.unregisterNotification(winObs) });


   // Показать или спрятать пароль в окошке вода ....
   function handleDblClick(e) {
     if ( e.button ) return;
     
     var node = e.target;
      
     if ( node.hasAttribute("typechanged") ) {
          node.type = "password";
          node.removeAttribute("typechanged");
          return; 
          }
     if ( node.hasAttribute("type") && node.getAttribute("type").toLowerCase() == "password" ) {
          node.type = "text";
          node.setAttribute("typechanged", true);              
          }      
   };
   addEventListener("dblclick", handleDblClick, false, gBrowser ); // обработчик двойного клика для страницы
   
})();

Отредактировано bunda1 (11-01-2014 05:00:39)

Отсутствует

 

№214-05-2018 01:02:28

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3146
UA: Firefox 60.0

Re: [CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

Долго работала :) , но перестала на 60. Можно попросить отремонтировать? :angel:

Отсутствует

 

№314-05-2018 21:47:47

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 847
UA: Firefox 52.0

Re: [CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

Ну, я попробовал процитировать контентскую часть
под многопроцессность, вроде работает.

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

Выделить код

Код:

((script, ID, NSVO) => {
    var nsvo = eval(NSVO), u = code => "data:," + encodeURIComponent(code);
    if (!(ID in nsvo)) {
        var processURL = u(script.replace(/%ID%/g, ID).replace("%NSVO%", NSVO));
        Services.ppmm.loadProcessScript(processURL, true);
        nsvo[ID].processURL = processURL;
        Services.mm.loadFrameScript(nsvo[ID].frameURL = u(`${NSVO}["${ID}"].init(this);`), true);
    }
    addDestructor(reason => {
        if (reason[5] != "e" || !(ID in nsvo)) return;
        Services.mm.removeDelayedFrameScript(nsvo[ID].frameURL);
        Services.mm.loadFrameScript(u(`${NSVO}["${ID}"].destroy(this);`), false);
        Services.ppmm.removeDelayedProcessScript(nsvo[ID].processURL);
        Services.ppmm.loadProcessScript(u(`${NSVO}["${ID}"].forget();`), false);
    });
})(`\
    (nsvo => nsvo["%ID%"] = {
        dblclick({target}) {
            if (target.hasAttribute("typechanged")) {
                target.type = "password";
                target.removeAttribute("typechanged");
            } else if (
                target.hasAttribute("type") &&
                target.getAttribute("type").toLowerCase() == "password"
            ) {
                target.type = "text";
                target.setAttribute("typechanged", true);
            }
        },
        init(cpmm) {
            cpmm.addEventListener("dblclick", this);
            cpmm.addEventListener("unload", this);
        },
        destroy(cpmm) {
            cpmm.removeEventListener("dblclick", this);
            cpmm.removeEventListener("unload", this);
        },
        handleEvent(e) {this[e.type](e);},
        unload(e) {this.destroy(e.target);},
        forget() {delete nsvo["%ID%"];}

    })(%NSVO%);`,
    `CB${_id.slice(20)}:PasswordTypeToggler`,
    `Components.utils.import("resource://gre/modules/Services.jsm", {})`
);

Отсутствует

 

№414-05-2018 22:01:53

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3146
UA: Firefox 60.0

Re: [CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

Dumby пишет:

Ну, я попробовал процитировать контентскую часть
под многопроцессность, вроде работает.

Прекрасно работает, огромное вам спасибо! :beer:
Насчёт многопроцессности — не в курсе, отключена. :) Но, думаю, это значения не имеет.

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Показать или спрятать пароль в окошке вода двойным кликом мыши

Board footer

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