Я переключил в about:config настройку browser.urlbar.openintab = true
Все адреса из адресной строки открываются в новых вкладках. Мне это удобно.
А можно сделать, чтобы, если я вставляю в адресную строку алиас закладки, и если эта закладка - букмарклет (код начинается с javascript:), то она открывалась бы в текущей?
Отсутствует
Поставим вопрос по другому: onclick="FullZoom.reset(); FullZoom.resetScalingZoom();" - это клик по масштабу в browser.xhtml , а мне надо такой код
Рихтовать сам browser.xhtml - не прошло , как решить проблему ?
В смысле код в сам атрибут "onclick" вписать?
Тогда его надо сериализировать под это дело.
Вот, например, код — полный сброс, и установка твоего добра:
(lc => { var {_cps2, name} = FullZoom; _cps2.removeByName(name, lc, {handleCompletion() { _cps2.setGlobal(name, 1.15, lc); for(var [url, zoom] of Object.entries({ "about:addons": 1.09, "hdrezka-ag.com": 1.21, "kinokrad.co": 1.21, "bigcinema.tv": 1.21, "filmix.ac": 1.21, })) _cps2.set(_cps2.extractDomain(url), name, zoom, lc); }}); })(Cu.createLoadContext());
(lc => {
	var {_cps2, name} = FullZoom;
	_cps2.removeByName(name, lc, {handleCompletion() {
		_cps2.setGlobal(name, 1.15, lc);
		for(var [url, zoom] of Object.entries({

			"about:addons": 1.09,
			"hdrezka-ag.com": 1.21,
			"kinokrad.co": 1.21,
			"bigcinema.tv": 1.21,
			"filmix.ac": 1.21,
		}))
			_cps2.set(_cps2.extractDomain(url), name, zoom, lc);
	}});
})(Cu.createLoadContext());
А можно сделать, чтобы, если я вставляю в адресную строку алиас закладки, и если эта закладка - букмарклет (код начинается с javascript:), то она открывалась бы в текущей?
Не уверен, но можно попробовать подсунуть свой gURLBar._whereToOpen()
(key => { var wto = gURLBar[key]; gURLBar[key] = function() { try { var {keyword, url} = this._resultForCurrentValue.payload; if (keyword && url.startsWith("javascript:")) return "current"; } catch {} return wto.apply(this, arguments); } addDestructor(() => delete gURLBar[key]); })("_whereToOpen");
Отсутствует
Отсутствует
Dumby
Осваиваю 89. Есть две проблемы: Поиск из контекста (все поисковики сразу) Помнится в schemas ритовали , но теперь никак.
И второе, не могу загасить Ctrl+ клик по папке с закладками и все они открываются...Как прибить это?
И код не работает : Теперь в browser-places.js все не так. и рихтануть не получается...
xulStore.setValue(
doc, "PersonalToolbar", "collapsed", "true"
);
Отредактировано ВВП (04-06-2021 21:37:50)
Отсутствует
Поиск из контекста (все поисковики сразу) Помнится в schemas ритовали , но теперь никак.
Рихтовали не schemas, а ext-search.js
И рихтовка в Firefox 89 работает. Там только это убрали (баг),
что совершенно не важно.
не могу загасить Ctrl+ клик по папке с закладками и все они открываются...Как прибить это?
Для папок в Панели закладок, Меню, ...
%FOX%\browser\omni.ja\chrome\browser\content\browser\browser-places.js
/* // Only handle middle-click or left-click with modifiers. let modifKey; if (AppConstants.platform == "macosx") { modifKey = aEvent.metaKey || aEvent.shiftKey; } else { modifKey = aEvent.ctrlKey || aEvent.shiftKey; } if (aEvent.button == 2 || (aEvent.button == 0 && !modifKey)) { return; } */ // Only handle middle-click or left-click with shift. if (aEvent.button == 2 || (aEvent.button == 0 && !aEvent.shiftKey)) { return; }
/* // right-clicks are not handled here if (event.button == 2) { return; } */ // right-clicks and left-clicks with ctrl-only are not handled here if (event.button == 2 || (event.button == 0 && event.ctrlKey && !event.shiftKey && !event.altKey)) { return; } ..... /* let metaKey = AppConstants.platform === "macosx" ? event.metaKey : event.ctrlKey; let modifKey = metaKey || event.shiftKey; */ let modifKey = event.shiftKey;
xulStore.setValue(
doc, "PersonalToolbar", "collapsed", "true"
);
Так #PersonalToolbar теперь же под настройкой
browser.toolbars.bookmarks.visibility
Отсутствует
что-то я прям аж перепугался с выходом 89 ан, нет, поставил ночнушку, которая будет следующим релизом ЕСР, втулил в неё CB + UCF и все основополагающие, самые главные, просто величайшие и, без преувеличения, глобальные, кнопки заработали спокойно и легко. до стилей с изменением фейса доберусь может быть в бетке, это не такие важнейшие функции как кнопки. так что спасибо Dumby, Infocatcher и всем-всем причастным за еще больше года спокойной жизни
Отсутствует
Dumby
Вы когда то вешали минимизацию памяти на ЛКМ по ucf-mem-indicator. Вы не могли бы еще по ПКМ добавить открытие about:performance, а по Ctrl+ПКМ открытие about:debugging#/runtime/this-firefox? Хотелось бы иметь быстрый доступ к этим страницам без лишних кнопок.
Отсутствует
_zt
Вариант
/* win.document.getElementById("star-button-box") .after(win.document.importNode(df, true)); this.notify(); })(win); }, */ var clone = win.document.importNode(df, true); clone.firstChild.oncontextmenu = this.about; win.document.getElementById("star-button-box").after(clone); this.notify(); })(win); }, about(e) { var gb = e.view.gBrowser; gb.selectedTab = gb.addTrustedTab(`about:${ e.ctrlKey ? "debugging#/runtime/this-firefox" : "performance" }`); },
Отсутствует
А как подсказку многострочной сделать?
А это окно можно фиксировать не по центру? Куда не выставлю, оно всегда в центре...
Вроде так работает в custom_script_all_win.js
(не в «... по событию "load" не раньше», а просто добавить в конец).
try {if (location == "chrome://global/content/commonDialog.xhtml") { let args = Array.from(arguments[0].enumerator, x => x.value); if (args.includes("Внимание !") && args.includes("Закрыть все вкладки ?")) { let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow); bw.visibility = false; onpageshow = () => Promise.resolve().then(() => { moveTo(100, 100); bw.visibility = true; }); } }} catch {}
Отредактировано Dumby (08-06-2021 10:29:02)
Отсутствует
Dumby
Не...На все окна надо, типа...Окно переносится, но не фиксируется.
Хотя... Как это в один код объединить? Расположение идеально !
Отредактировано ВВП (08-06-2021 15:58:33)
Отсутствует
Отсутствует
vv07
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFAklEQVR42n2VW2wUZRTHzzczuzt7nb3Mtt3ttluVpo01waImYmygkVgKxURDvERToiaaGGKawAsxJj40JvIgPBhQeEDBgpLGAok8oCCEmhoUaCMILdDLlu12u/fZnb3M5fs8S+IDIk6y+XbOzvebc87//50l8JCr5dAhIkgSZwqCYAJwjFJGdN1k5bKxtG0be9g+8u9A++goKWQyVlsg4OScTj8CZQrgZIxpxDByCMzQbFYRRLEaHxw0/xcYOnKE2J3OoGa3P87c7m7mdHZRiyVi8rwDGNMxwxQpl2dYoXCFy+X+FJPJ+PzQUPU/gdGJCaF2+3Y7DYf7NEnqMd3udrDZZMpxLsyOB0JMfLjKdD1vqmqMU5TLYi53hhLye2FgQLkP2HHwIJ8vlTqM1atf1Xy+fiqKjxmYFX543EDqDzFCaH3l6r00DM2s1ZJEVX/lFWUUG3pB7+sr3QM+cuwYh2tT2Wp9U2ltfc2DmXXZbHYbBu9oGszrOtMwxTq2geNIh8UCbouF3UKBbpdKSZZOn7PEYl9ylcpUdft2nYSPHrUbptmjNTfvrHi9z6yVJOfrHg80CwK7pKpwKpeDm+UyeHie9LpcsFmSmNdqpT9VKjCSy5n5TGbeOjv7NczOflMbHk4Rz+7dYT4aHdRbWt6vCUJos8/Hf9jQwLodDjZfrbJTmQz3Wz4PMs/DgCyzHkkiWBs9ls/TL1IpklLVshCPX2DXr38iZLPXSOOePd2VVat26MHgRo1ST5fdDm81NMAWnw+asLQFzGSuWCQuBHa43cBj5heLRTaSTrOzikLKlJokk7nFpqd3SYXCWdJ2+HD/it+/S/N6u9FvNhGb3onQV2SZeykQYG2iyNDUBFUmJfztoqLA0WSSjeOaq4vFcRQKhUWYnv40QMgoCR44sDWPQMPr7QBBsKItqEXXyQa/n3uvtRVewDJRBGJQCtOqSkficXI4Hoe4rgPgy6AOLBbjcOPG5y5BGCFNe/duSgcCu0xZXo1AkTcMFkZR+7HsNxC4xutlVhSkLvRypcJOLy/DkcVFmFJVVrGhFzjOxAzvwrVrn0mEfE96R0aeGte0HTQYfJHxvLsVN6Mw8HI4zJ7w+VgVQWlNIw6MB7GnmVqNIJQeTyTYFVRfQ8PDysoduHr1o06v9wzZcvJk5OdE4u2aLL/LWSxN9VI/iEbZc7JM8qbJfllZIZPZLAmKImwIhVgXWipeLrNvFxfpgViMZUulGsRiEzA19XFPe/skkYaHHcDzvarPtxM8nu6+lhb7YFsbtNjt5DJ68Ie5OZhMpUB2OmEAX7Q5HAY7Kn0ahflqZsZMLy0twczMd7CwsB/GxhKkbWiIr1arEcXheKcciWxtiUSia5ubrWgTcj2XY3/lcrRYq4GA91GPhz0dDIIXe3clm6VXFxbyRjw+Djdv7gdKJ+D48eq9s2zt7LSgut36xo2DEAr1in5/M7HZRA2PmsnhycSM6seUUEot6BQevacrSt5YXv4D7t4dRVF+hBMn8vdNG7Jvn42NjT0JjY2bEPo8BAKPgsvlA7vdikCC44uBjl6p1coISEA2OwnJ5GlIJC5gLA3j4+zBAbt+vYUTxRDz+9cwn+9ZkKQuBAbr/sSSKG5UoFSaQ9hlyGQuYewWqKoC58+zB+bhP5ewbh1PGxtFarV6cB56MeQFwxCxYAPFK+J9gaRSBVYqqfhdg3Pn7vs7+BtcvogzqcGZngAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0Aself.image%20%3D%20%22data%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFAklEQVR42n2VW2wUZRTHzzczuzt7nb3Mtt3ttluVpo01waImYmygkVgKxURDvERToiaaGGKawAsxJj40JvIgPBhQeEDBgpLGAok8oCCEmhoUaCMILdDLlu12u/fZnb3M5fs8S+IDIk6y+XbOzvebc87//50l8JCr5dAhIkgSZwqCYAJwjFJGdN1k5bKxtG0be9g+8u9A++goKWQyVlsg4OScTj8CZQrgZIxpxDByCMzQbFYRRLEaHxw0/xcYOnKE2J3OoGa3P87c7m7mdHZRiyVi8rwDGNMxwxQpl2dYoXCFy+X+FJPJ+PzQUPU/gdGJCaF2+3Y7DYf7NEnqMd3udrDZZMpxLsyOB0JMfLjKdD1vqmqMU5TLYi53hhLye2FgQLkP2HHwIJ8vlTqM1atf1Xy+fiqKjxmYFX543EDqDzFCaH3l6r00DM2s1ZJEVX/lFWUUG3pB7+sr3QM+cuwYh2tT2Wp9U2ltfc2DmXXZbHYbBu9oGszrOtMwxTq2geNIh8UCbouF3UKBbpdKSZZOn7PEYl9ylcpUdft2nYSPHrUbptmjNTfvrHi9z6yVJOfrHg80CwK7pKpwKpeDm+UyeHie9LpcsFmSmNdqpT9VKjCSy5n5TGbeOjv7NczOflMbHk4Rz+7dYT4aHdRbWt6vCUJos8/Hf9jQwLodDjZfrbJTmQz3Wz4PMs/DgCyzHkkiWBs9ls/TL1IpklLVshCPX2DXr38iZLPXSOOePd2VVat26MHgRo1ST5fdDm81NMAWnw+asLQFzGSuWCQuBHa43cBj5heLRTaSTrOzikLKlJokk7nFpqd3SYXCWdJ2+HD/it+/S/N6u9FvNhGb3onQV2SZeykQYG2iyNDUBFUmJfztoqLA0WSSjeOaq4vFcRQKhUWYnv40QMgoCR44sDWPQMPr7QBBsKItqEXXyQa/n3uvtRVewDJRBGJQCtOqSkficXI4Hoe4rgPgy6AOLBbjcOPG5y5BGCFNe/duSgcCu0xZXo1AkTcMFkZR+7HsNxC4xutlVhSkLvRypcJOLy/DkcVFmFJVVrGhFzjOxAzvwrVrn0mEfE96R0aeGte0HTQYfJHxvLsVN6Mw8HI4zJ7w+VgVQWlNIw6MB7GnmVqNIJQeTyTYFVRfQ8PDysoduHr1o06v9wzZcvJk5OdE4u2aLL/LWSxN9VI/iEbZc7JM8qbJfllZIZPZLAmKImwIhVgXWipeLrNvFxfpgViMZUulGsRiEzA19XFPe/skkYaHHcDzvarPtxM8nu6+lhb7YFsbtNjt5DJ68Ie5OZhMpUB2OmEAX7Q5HAY7Kn0ahflqZsZMLy0twczMd7CwsB/GxhKkbWiIr1arEcXheKcciWxtiUSia5ubrWgTcj2XY3/lcrRYq4GA91GPhz0dDIIXe3clm6VXFxbyRjw+Djdv7gdKJ+D48eq9s2zt7LSgut36xo2DEAr1in5/M7HZRA2PmsnhycSM6seUUEot6BQevacrSt5YXv4D7t4dRVF+hBMn8vdNG7Jvn42NjT0JjY2bEPo8BAKPgsvlA7vdikCC44uBjl6p1coISEA2OwnJ5GlIJC5gLA3j4+zBAbt+vYUTxRDz+9cwn+9ZkKQuBAbr/sSSKG5UoFSaQ9hlyGQuYewWqKoC58+zB+bhP5ewbh1PGxtFarV6cB56MeQFwxCxYAPFK+J9gaRSBVYqqfhdg3Pn7vs7+BtcvogzqcGZngAAAABJRU5ErkJggg%3D%3D%22%3B%0A%0Athis.onclick%20%3D%20this.oncontextmenu%20%3D%20function%28event%29%20%7B%0Aif%20%28event.button%20%3D%3D%201%29%20%7B%0A%20if%20%28Services.prompt.confirm%28null%2C%20%22%u0412%u041D%u0418%u041C%u0410%u041D%u0418%u0415%20%21%22%2C%20%22%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%3F%22%29%29%20%20%0A%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...gBrowser.tabs%5D.forEach%28%28tab%29%3D%3E%20gBrowser.removeTab%28tab%29%29%3B%20%0A%0A%7D%0A%0A%20if%28event.button%20%3D%3D%200%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20gBrowser.removeTab%28gBrowser.selectedTab%29%3B%0A%7D%0A%20%20%20%20%20%0Aif%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0AgBrowser.selectedTab%20%3D%20Array.from%28gBrowser.tabs%29.reduce%28%28prev%2C%20curr%29%20%3D%3E%0A%09curr.closing%20%7C%7C%20curr.selected%0A%09%7C%7C%20curr._notselectedsinceload%20%21%3D%3D%20false%0A%09%7C%7C%20curr.lastAccessed%20%3C%20prev.lastAccessed%0A%09%09%3F%20prev%20%3A%20curr%0A%2C%20%7B%7D%29%3B%0A%0A%7D%20%20%20%20%20%20%0A%7D%3B%0A%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%20%0Athis.tooltipText%20%3D%20%22%u041B%u041A%u041C%3A%20%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%5Cn%u0421%u041A%u041C%3A%20%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%5Cn%u041F%u041A%u041C%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%u0441%u044F%20%u043D%u0430%20%u043F%u043E%u0441%u043B%u0435%u0434.%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%22%3B%20%20%0A%0Avar%20style%20%3D%20custombutton.buttonGetHelp%28self%29.replace%28/id/g%2C%20_id%29%3B%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28style%29%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%23id%3Ahover%3Anot%28%3Aactive%29%20%3E%20.toolbarbutton-icon%7B%0A%0A%09list-style-image%3A%20none%20%21important%3B%0A%09object-position%3A%2020px%200px%20%21important%3B%0A%09background-position%3A%20center%20%21important%3B%0A%09background-repeat%3A%20no-repeat%20%21important%3B%0A%20%20%20%20%20%20%20%20%0A%09background-image%3A%20url%28%22data%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAE80lEQVR42n2UW2hUVxSG1z7XOSfJXE5mch0TNcZIFWxa6wW0pSha4yiiUi81gSpYfPFFKYRSqA9K+yK+tfQlFkwwEqpoVUytMWoNpMZGamlriG00Ok4ymVsy58y57L26RyrU1nbDeVl7n4//3+vfiwQCAXjZOl1eTgKSJEieJxFKBYaIDiHURPS2ZbMI/7HIP4EXa2tJOpNRDFUtKREEQ6Y0DIyVFHkeIWkOnEoxllMlqbA1k6H/Czzj9xNd1yO6bb9Shtgsy/JCASAqUqoDossYm3Q9734W8U5aFH+K6/rjfYlE4aXAO1VV0lg+31hD6bqgba/SBKGRKEpYYKyUWxaB20VBKIBtZzzLepgVhKGUrvfyvR/e4opfAJ6sqxPNVKqp2XXfNWx7vYrYILmuLjmOSBgjHAYEkYEgABUEpIQ4tucl8oR8n5OkHq6+f7mmzTwD9s+fz11BlZrPvzc7nd4O0Wiju3SpRlQVnNFRCA8MIFeFRWi+oYHYS5aAVFaG7sgI9V+/nkgiXh1TlC8sUbzbJssuuVZXpzHPWxUtFA4ZpvmGuWVLiX/HDpBqajA/OAjpc+cgcO0aQDBIrO3bIdDSgkooxMwrV0A8fpzmJif/GFXVEw8I+epDRZkkXaFQTb0ottU5zgdyoVBd2LtXrDhwALUFC9B5+hSnzp8XMgMDIIXDEI7FMLhyJWGmydKnTjF6+DCh4+PmuCz3/4z4yZQs3yPdtbXN8/P5gxWO8w7atj+3ejVEWlshtHEjiIEAOokEzDx4QMTSUihragJBljF34wYmOztR7+zk95CnSUJG7iO2TxnGd+RKY+P6SDzeHrLtZqBUpbqG06vehPKtW4Xwpk2oRCLFEJPih5Ri9uZNSHR1oe/MGRCSSRB5s7IAj34DOEorK3vIherqbZGpqfag6zZJAIrHDziKQtxdu4S6ffvAWLHiORCcZJI97uoi9rFjgGNj4ANA3lE2DfD4F4BjxO/vJKej0ZbKRKI97HmLOdDnSRK6s2YRafduqNu5E8r4XT5X6JkmPr10CeIdHaD09aFmmsCBlCscvwfwGTWMbnI5Fntd6u09GGFsrchYGc6dS7CtDWo3b8bQokVIbZtwZUTUdaIYBtrpNOFQNsFta7zTgm3TCYDRHwE+8i1e3Eu+3bMn6nR3vx+xrL2yKFZ53Gr9/v0YWbaMeDMzONHXR1LDw8QXiUDVmjVYOm8e2MkkPjp5kplHj6I1OWk/BBi4C/Bx7bp1w6TDMHRu9e3y6elDfoBmtbVVm80Vatx2emgIxnp6gF69Cr6KCvC3tWHNhg0gahomLl7E1JEjdCKReHIf4NQYwOcdgUCcfNrUJNqWFS1LpfbUz8xsq5wzp16LxRQeE2Ldvo3u4CDzstliXIje0IDi2rWgBoNg3rrF0v39mSeue/NXDmNc5ZeBQOHZW17iurLLp0vMstqqudqgrteqhPhEfn+i5wF38Kwx/A0zUBSkkkSnHSeTcN3b4wA9vCkXTgQCmRemTWcup55FfLUSoIVDV5YDzC0FCGk8SlIxgxzqArg2gMkB8RTAcIKPzzhAP68lv+GP4F/zcHM2K6uiWG0w9pqBuJzvLOTASDGf3BLjP+b4SPmdw4amAAZ5bSTPa2f/gr10Ym+0LLGKUp9KqV/lI4GXgh7PJw+iJwLwDEN2gpBsHjFfzPrXf4MV15+m8XiKOdVncQAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%7D%0A%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отредактировано ВВП (09-06-2021 10:58:07)
Отсутствует
Здравствуйте! На новых версиях лисы, не работает расширение CloseTab. Может умельцы сварганят кнопку?
Таже проблемма. Ещё раширение Bat Elolc барахлит. Не посмотрят ли умельцы
Результаты поиска для "CloseTab" – Дополнения для Firefox (ru)
Отсутствует
Нет поиска сразу, сначала в поиске появиться . А сразу искать в Duck ? Забыл где рихтануть..
Типа это что ли? (ответ).
В custom_script_win.js, и вот тут как раз в «... по событию "load" не раньше».
Собственно, эквивалентно такой правке
%FOX%\browser\omni.ja\modules\UrlbarSearchOneOffs.jsm
/* if ( userTypedSearchString && engine && (event.shiftKey || where != "current") ) { */ if (engine && !event.shiftKey) {
Отсутствует
Dumby
Собственно, эквивалентно такой правке
%FOX%\browser\omni.ja\modules\UrlbarSearchOneOffs.jsm
Класс! Тонкий ход! Сдохла кнопка "Увеличить изображение"
/*Initialization Code*/ addEventListener("popupshowing", { imgZoom: 190, // на сколько увеличить изображение из меню scrollZoom: 20, // на сколько увеличивать/уменьшать колесиком мыши scrollTop: 1, // или -1, переключение направление прокрутки для увеличение колёсиком receiveMessage(msg) { var container = document.documentElement .appendChild(document.createElement("div")); addDestructor(() => container.remove()); var image = container.appendChild(document.createXULElement("image")); image.style.cssText = "width: 100% !important; height: 100% !important;"; image.setAttribute("validate", "never"); var st = container.style; var dz = this.scrollZoom/100 * this.scrollTop; var currScale = 1, x, y, initialZoom = this.imgZoom/100 - 1; var hide, props = ["width", "height", "left", "top"], p = n => n + "px"; var set = (...args) => props.forEach((prop, ind) => st[prop] = p(args[ind])); (hide = () => { st.cssText = "position: fixed; display: none; z-index: 2147483647;"; currScale = 1; image.src = null; })(); container.onwheel = (e, ds = e.deltaY > 0 ? -dz : dz) => { if (currScale < .15 && ds < 0) return; st.transform = `scale(${currScale += ds})`; var {width, height, left, top, bottom, right} = container.getBoundingClientRect(); if (height < innerHeight) { if (top < 0) st.top = p(y -= top); if (bottom > innerHeight) st.top = p(y -= bottom - innerHeight); } if (width < innerWidth) { if (left < 0) st.left = p(x -= left); if (right > innerWidth) st.left = p(x -= right - innerWidth); } } (this.receiveMessage = msg => { var {src, width, height, left, top} = msg.data; image.src = src; left -= mozInnerScreenX; top -= mozInnerScreenY; set(width, height, x = left, y = top); st.display = "block"; container.onwheel(null, initialZoom); window.addEventListener("mousedown", hide, {once: true, capture: true}); })(msg); }, handleEvent(e) { if (!gContextMenu.onImage) return; var menuitem = document.createXULElement("menuitem"); menuitem.setAttribute("label", "Увеличить размер"); menuitem.className = "menuitem-iconic"; menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADZElEQVR42oXSe0xbVRwH8N8597a35e7SAmUFukGhY66AMiNzw4GvTCQLCssc4pQsmTOa+ERMlrktW1zigpnEuWn8x2eMmiVGMBDCFjS+cJHEDIk8RoSNV1+3tLWX3t72nnO8sETJFrfvP7/k5Pw+Ob9fDoLrYi8ow9GFUbq+5aRLrGraqQcX6hlF2wkFEWn6EDIJAyQy9+3VT58cWb6PrmvmjGZS/FSHlxbXtbtLobGqJlPKMhNepWb0V8hKpi8FNd/gzCCogbdmvtg/8C9gz9+Eor5x5nn2tDOZ98Dx2i3C/uYai9mOGCxiDQIIg1/PgUCEhyvDMox9PXYBkPzaaoAzAFL0yle7ShtqO/eWJ9w1vJ1oGsVzYhTNATMQG4Q1G40ldDw6PB339fs7VgMmA0jnHfioo6F9Z3tDYYJzKSZKMYcDvAILiICfZUNYEYFixMKpKBk8MfTTasBsACnngU/6Wg4+VL/VFSOmBHAYY1BAhzAvgmyMEIkh0EUOBD1Eu49eStwA5D3z4TcPv9TYdHvxEhXSGgaEIMkJkKAS+ONmSKYolOVqMBlRSd8bv8v/AQXlJoiHUE5rZ1tFa/Nhj1uVrCaNMoQxYSaIqDxAGqAuQ2XZ1iS8HUTpkZMXe1eATOdtiCcJblGe1a3PnWp0uEvfv3tbeX5RhSet/q3wxh6xgAncZUmw2hxEryQx9/LHE7I2RV5HNudGFAtcZsuQd919u/kiz56JOwobcjd6xerqKnB4HIB4RvMzCM1DGj8X0GD64pL2Xdf850z+4djKC8wl24XUpj1P75sdfe/+sSHoq3uQnSuwa+s2Vy5uubd2jQWUTAYchJK8HpyIzvv7p/rMkV/OzPeeGEWi+x6LufiR573h8VO7Zr4n9fEZNeiqXHOofFvPsKPkS1fKsX5JU6uNZQh8Wh/hRcuvOC3/fLXrcGj52yOo7zzU9udvbzbN9uglggK2MhsnvfiE0tY9tfed7vM98D+x53tx1DdG0Z2b97Ejf3SRSiGGCysyENvdoipZa4+/8NmPp8+N+Ei2ZEVpQhG71rdcqFFozD+xcoQugFUvlDS8wWsl8Uebk5C79ujjHwyc6R/309ysDBRauEzhJkG9ErAdG0xEe6yVkwqcr+549/zZgcmQ7pAEkH2TDG6RfwCoJI0uEWJP5QAAAABJRU5ErkJggg=="); menuitem.setAttribute("oncommand", "handleCommand();"); e.target.append(menuitem); addDestructor(() => menuitem.remove()); menuitem.handleCommand = () => this.cmd(); this.handleEvent = () => menuitem.hidden = !gContextMenu.onImage; }, cmd() { var msg = "CB:GetImageScreenRectForMosuseZoom"; var code = `(targetIdentifier => { var image = ChromeUtils.import("resource://gre/modules/ContentDOMReference.jsm") .ContentDOMReference.resolve(targetIdentifier); var mm = image.ownerGlobal.docShell.messageManager; var bu = mm.BrowserUtils || ChromeUtils .import("resource://gre/modules/BrowserUtils.jsm").BrowserUtils; mm.sendAsyncMessage("${msg}", Object.assign( {src: image.currentSrc}, bu.getElementBoundingScreenRect(image) )); })(`; messageManager.addMessageListener(msg, this); addDestructor(() => messageManager.removeMessageListener(msg, this)); (this.cmd = () => { var {osPid} = gContextMenu.actor.manager.browsingContext.currentWindowGlobal; if (osPid == -1) osPid = Services.appinfo.processID; for(var ind = 0, len = Services.ppmm.childCount; ind < len; ind++) { var pmm = Services.ppmm.getChildAt(ind); if (pmm.osPid == osPid) break; } pmm.loadProcessScript("data:;charset=utf-8," + encodeURIComponent( code + JSON.stringify(gContextMenu.targetIdentifier) + ")" ), false); })(); } }, false, document.getElementById("contentAreaContextMenu") || 1);
Отредактировано ВВП (09-06-2021 14:11:02)
Отсутствует
Dumby
Кажись еще один код сдох ? Процесс - мульти!
// Проверка орфографии
addEventListener('click', e=> {
if ( e.target.tagName && (e.target.tagName == 'TEXTAREA'|| e.target.tagName == 'INPUT'))
e.target.setAttribute('spellcheck', 'true');
}, );
Отредактировано ВВП (11-06-2021 13:59:35)
Отсутствует