>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]Показать или спрятать пароль в окошке вода двойным кликом мыши http://forum.mozilla-russia.org/viewtopic.php?id=61544 |
bunda1 > 11-01-2014 04:58:24 |
Показать или спрятать пароль в окошке вода двойным кликом мыши ( Firefox 17+ ) Выделить код Код:// Показать или спрятать пароль в окошке вода двойным кликом мыши, от 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 ); // обработчик двойного клика для страницы })(); |
Coroner > 14-05-2018 01:02:28 |
Долго работала , но перестала на 60. Можно попросить отремонтировать? |
Dumby > 14-05-2018 21:47:47 |
Ну, я попробовал процитировать контентскую часть скрытый текст Выделить код Код:((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", {})` ); |
Coroner > 14-05-2018 22:01:53 |
Dumby пишет
Прекрасно работает, огромное вам спасибо! |