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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№1557607-06-2021 20:06:54

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby
А это окно можно фиксировать не по центру? Куда не выставлю, оно всегда в центре...
7aeqildt.png

Отсутствует

 

№1557708-06-2021 09:42:43

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

Re: Custom Buttons

_zt пишет

А как подсказку многострочной сделать?

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

Выделить код

Код:

/*
				"Some tooltip text."
*/
				"Some
tooltip
text."

ВВП пишет

А это окно можно фиксировать не по центру? Куда не выставлю, оно всегда в центре...

Вроде так работает в 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)

Отсутствует

 

№1557808-06-2021 10:29:48

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Не...На все окна надо, типа...Окно переносится, но не фиксируется.
slru92y4.png
Хотя... Как это в один код объединить?  Расположение идеально !

скрытый текст
try {if (location == "chrome://global/content/commonDialog.xhtml") {
    let args = Array.from(arguments[0].enumerator, x => x.value);
    if (args.includes("Внимание !")) {
        let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow);
        bw.visibility = false;
        onpageshow = () => Promise.resolve().then(() => {
            moveTo(570, 220);
            bw.visibility = true;
        });
    }
}} catch {}
try {if (location == "chrome://global/content/commonDialog.xhtml") {
    let args = Array.from(arguments[0].enumerator, x => x.value);
    if (args.includes("Подтверждение")) {
        let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow);
        bw.visibility = false;
        onpageshow = () => Promise.resolve().then(() => {
            moveTo(570, 220);
            bw.visibility = true;
        });
    }
}} catch {}

Так,объединил. Как теперь OK на Да сменить?
twxejmwn.png

Отредактировано ВВП (08-06-2021 15:58:33)

Отсутствует

 

№1557908-06-2021 17:22:10

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

Re: Custom Buttons

ВВП пишет

Как теперь OK на Да сменить?

Перед bw.visibility = true;
document.getElementById("commonDialog")._buttons.accept.label = "Да";

Отсутствует

 

№1558008-06-2021 17:49:39

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Перед bw.visibility = true;
document.getElementById("commonDialog")._buttons.accept.label = "Да";

Класс! А то пришлось в локаль лезть..

Отсутствует

 

№1558108-06-2021 21:24:45

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Снова здорова...Нет поиска сразу, сначала в поиске появиться . А сразу искать в Duck ? Забыл где рихтануть..
r7svbanh.png
Это случается только при новой вкладке или пустой...

Отредактировано ВВП (09-06-2021 10:12:18)

Отсутствует

 

№1558209-06-2021 09:05:36

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 686
UA: Firefox 54.0

Re: Custom Buttons

Здравствуйте! На новых версиях лисы, не работает расширение CloseTab. Может умельцы сварганят кнопку?

Отсутствует

 

№1558309-06-2021 10:56:54

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

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)

Отсутствует

 

№1558409-06-2021 11:11:18

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 686
UA: Firefox 54.0

Re: Custom Buttons

ВВП
Даже лучше, чем заказывал. Благодарю

Отсутствует

 

№1558509-06-2021 11:19:36

vending_machine
Участник
 
Группа: Members
Зарегистрирован: 10-01-2020
Сообщений: 542
UA: Firefox 89.0

Re: Custom Buttons

vv07 пишет

Здравствуйте! На новых версиях лисы, не работает расширение CloseTab. Может умельцы сварганят кнопку?

Таже проблемма. Ещё раширение Bat Elolc барахлит. Не посмотрят ли умельцы

Результаты поиска для "CloseTab" – Дополнения для Firefox (ru):iron:

Отсутствует

 

№1558609-06-2021 12:31:23

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

Re: Custom Buttons

ВВП пишет

Нет поиска сразу, сначала в поиске появиться . А сразу искать в Duck ? Забыл где рихтануть..

Типа это что ли? (ответ).
В custom_script_win.js, и вот тут как раз в «... по событию "load" не раньше».


Собственно, эквивалентно такой правке
%FOX%\browser\omni.ja\modules\UrlbarSearchOneOffs.jsm

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

Выделить код

Код:

/*
    if (
      userTypedSearchString &&
      engine &&
      (event.shiftKey || where != "current")
    ) {
*/
    if (engine && !event.shiftKey) {


vending_machine
https://cdn.waterfox.net/AMO/xul/294/294922/   :dumb:

Отсутствует

 

№1558709-06-2021 12:58:46

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby

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


Если кнопку не трогать, то здесь рихтануть? BrowserUtils.jsm ...Рихтанул,вроде заработала.

Отредактировано ВВП (09-06-2021 14:11:02)

Отсутствует

 

№1558811-06-2021 11:10:12

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

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)

Отсутствует

 

№1558911-06-2021 23:26:12

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

Re: Custom Buttons

ВВП пишет

код сдох

Сдыхать там нечему. Можно в обезьяну переложить,
раз уж многопроцессность не отключена.

Отсутствует

 

№1559011-06-2021 23:48:00

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby
А просто сделать всегда включенной?

Отсутствует

 

№1559112-06-2021 02:59:27

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 686
UA: Firefox 78.0

Re: Custom Buttons

Подскажите пожалуйста, в чем проблема и как поправить.
Созрел наконец то для ESR [?] 78.11.0 . Установил по рекомендации, custom_buttons-0.0.7.0.0.17-fx-paxmod
И Усе пропало)))) Из темы с готовыми кнопками, код открывается в поисковике или выдает ошибку.
Попытался поставить свои старые кнопочки из файла, тоже ошибки
Мне много не надо. Хотя бы большую часть, самых необходимых кнопок
Автоматически добавлять выделенный текст в SearchBar
Autocopy
Compact Menu
Context translate
Copy links
FF Exp Imp CB
Google translate
History Export
Linkification
Proxy
Save snapshot to html
Save
Search and open
Stf
Stop
TunePanels
URL
User-agent change
Закрыть вкладки или вкладку
линк мастер
Список расширений

Отредактировано vv07 (12-06-2021 03:39:18)

Отсутствует

 

№1559212-06-2021 07:51:16

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 234
UA: Firefox 88.0

Re: Custom Buttons

Есть скрипт Url-tooltip

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

Выделить код

Код:

(function() {

  if (!window.gBrowser)
    return;

  var frameScript = function() {

    addEventListener('pageshow', function(event) {
      var documentElement = event.target.documentElement;

      documentElement.addEventListener('mouseover', function(event) {
        var element = event.target;
        var elementsWithTitle = [];
        while (element != documentElement && !element.href) {
          if (element.hasAttribute('title')) {
            elementsWithTitle.push(element);
          };
          element = element.parentNode;
        };
        if (element.href && !element.checkedTooltip) {
          element.checkedTooltip = true;
          if (element.getAttribute('href') != '\u0023' && element.protocol != 'javascript:') {
            if (element.title) {
              element.title += '\n' + element.href;
            } else {
              let length = elementsWithTitle.length;
              if (length > 0) {
                element.title = elementsWithTitle[length - 1].title + '\n' + element.href;
              } else {
                element.title = element.href;
              }
            };
            for (let elem of elementsWithTitle) {
              elem.removeAttribute('title');
            };
          };
        };
      });

    });

  };

  var frameScriptURI = 'data:, (' + frameScript.toString() + ')()';
  window.messageManager.loadFrameScript(frameScriptURI, true);

})();

Как убрать перенос длинных ссылок в две строки?
И как его присобачить через user_chrome_files от VitaliyV. Во все три custom_script добавил, а толку нет?

Отсутствует

 

№1559312-06-2021 08:30:42

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 89.0

Re: Custom Buttons

momo2000, вот же есть целых два варианта №8928 и №8931

Отредактировано voqabuhe (12-06-2021 08:31:40)

Отсутствует

 

№1559412-06-2021 16:00:11

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 234
UA: Firefox 88.0

Re: Custom Buttons

voqabuhe
А вообще скрипты *.uc.js подключить через user_chrome_files можно или для user_chrome_files только спец скрипты из этой темы?

Отсутствует

 

№1559512-06-2021 17:10:30

foxboy
Участник
 
Группа: Members
Зарегистрирован: 06-06-2015
Сообщений: 34
UA: Palemoon 24.0

Re: Custom Buttons

custom_buttons-0.0.7.0.0.17-fx-paxmod не ставится на 29 луну, на 28 идет.

Отсутствует

 

№1559612-06-2021 20:57:57

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 90.0

Re: Custom Buttons

momo2000 пишет

А вообще скрипты *.uc.js подключить через user_chrome_files можно...

Можно через этот загрузчик для custom_script_win.js или просто в конец custom_script_win.js добавить.
Я загрузчик подрезал чуток и путь у меня изменён, скрипты лежат в папке scripts3 рядом со скриптами комплекта. С дефолтным путём так:

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

Выделить код

Код:

/* ************************************************ */
        // Здесь может быть ваш код который сработает по событию "load" не раньше
(() => {
            var loadscript = (relpath, obj) => {
                try {
                    Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${relpath}`, obj, "UTF-8");
                    return true;
                } catch(e) { }
                return false;
            },
            load_scripts_by_url = {
                browser: win => {
                    setTimeout(() => {
                    loadscript("favicon_in_urlbar.js", win);
                    loadscript("search_engine_icon.js", win);
                    loadscript("urlbarhistorydropmarker.js", this);
                    loadscript("tabs_focus.js", win);
                    loadscript("tabstoolbar_doubleclick_opennewtab.js", win);
                    loadscript("contextmenuopenwith.js", this);
                    loadscript("pageInfo.js", win);
                    loadscript("restart_item_in_menu.js", this);
                    loadscript("add_a_bookmark_to_the_bookmarks_menu.js", win);
                    }, 0);
                },
            };
            load_scripts_by_url.browser(window);
        })();
        /* ************************************************ */

Dumby
А можно ещё этот скрипт изменить так, чтоб открытое окно "pageInfo" переключалось сразу на пункт "Разрешения", как то сделано в скрипте Vitaliy V. openpermissionswithrightclick? Сделайте пожалуйста, если это возможно, чтоб было по старинке через меню, но сразу на разрешениях.

Отсутствует

 

№1559712-06-2021 21:00:43

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby
А можна на эту кнопку предупредиловку сделать? На прокси.

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

Выделить код

Код:

(ps => {   
                                                                      

     
    this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 2) ? 0 : 2);

     var s = "network.proxy.type";
 
    var toggleImage = val => {
        this.icon.src = (val = ps.getIntPref(s, 2))
            ? this.image
            : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFklEQVR42mO0DwpKaG9vL2VmZmb8+/fvPwY84P///2DMwcHBcuHChZcp4eE5jJeePn2hIyUl/uDTJwZuLi4GFhYWBmZsmqH073//GD5+/MigIijIEJmTM4Px1Z8/H86dP8/vYWrKQAoAuSS1omIp46u/fz9cunSJ38XQkCQDvgINyCouXsL49v//D+cvXCDZgBe/fzOUl5cvYfwMNODA8eP8vlZW5BnwDWjAvhMn+H0sLUky4Mn37wzV1dUQAw6fPcvvbmJCkgEPPn9mqK+vX8L4E2QAGWFw5/17hubm5iWMv4AGnL55k99aQ4MkA26/e8fQ0dGxlPHxt28vZDg5xUGCf4H4JxD/AOI/f/8y/AMmmt/AwAJhYCplYGRkZPjz5w9YnJeXFxSICxhN3N3zSkpK8kH6371791UOCHR0dIR+/frFAMIgDaBE8+rVq78XL158BBT7xMPDw/f69evvrXV1pYxAjSDMA8R8wWlphfn5+SlAM/iB6R1sI0jz169fwfjs2bN3m5qaWu+fObMO6uAvjDA/uUdFle1YurQTxP4KxL+AmAnkFSAGuoxBREiIQRDIfvjlyxcFXl5QnF9hgNoOAUJCdsuWL1/m4+YmzQU14BdUig2IWYD4LTAsgDn31KT6+hAg9zGqARAgJ6OvH2Fubm6hrq4uC/QrFzDA/r958+Yz0P/3Dx8+fOjPy5drgepewzQAAJP3DZ3PnU32AAAAAElFTkSuQmCC";             
        this.tooltipText = val ? 'Автопрокси' : 'Без прокси';

        BrowserReload();
        
        cbu.setPrefs("network.proxy.autoconfig_url", val ? "resource://chrome/proxy/proxy2.pac" : "resource://chrome/proxy/proxy2.pac");
        cbu.setPrefs("intl.accept_languages", val ? "fr" : "ru");
        cbu.setPrefs("browser.zoom.full", val ? true : true); 
       cbu.setPrefs("media.autoplay.default", val ? 5 : 5); 
    
        
    }
    toggleImage();
    ps.addObserver(s, toggleImage, false);
    addDestructor(() => ps.removeObserver(s, toggleImage));
})(Services.prefs);

this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

Отсутствует

 

№1559812-06-2021 23:16:56

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

Re: Custom Buttons

ВВП пишет

А просто сделать всегда включенной?

Я посмотрел на синтетической странице,
и у меня и так работает в <textarea>.
А если выставить layout.spellcheckDefault
в значение 2, то и в <input> тоже.


Ну, конечно, если у них арибут spellcheck
специально не установлен в false.
Какой-то заложенной возможности
автоматически это игнорировать найти не смог.

А можна на эту кнопку предупредиловку сделать?

this._handleClick = () => Services.prompt.confirm(null, "Title", "Msg") && ps.setIntPref(s, ps.getIntPref(s, 2) ? 0 : 2);


vv07 пишет

как поправить

Никак. Годы (!) просиживания в уютной благодати необновленчества,
(при полном отсутствии интереса к изменениям в браузере) нельзя поправить.


momo2000 пишет

Как убрать перенос длинных ссылок в две строки?

Никак. Нельзя убрать то, чего нет.
Никакого «переноса длинных ссылок в две строки» в коде не предусмотрено.
Есть браузерное ограничение ширины тултипа max-width: 40em;
можно задать своё, побольше.


momo2000 пишет

А вообще скрипты *.uc.js подключить через user_chrome_files можно

Можно, если есть хоть какое-нибудь элементарное понятие,
а не «Во все три custom_script добавил».


Если добавлять Url-tooltip (в custom_script_win.js) в конец,
то следует убрать проверку на !window.gBrowser
Иначе, запускать из места, которое русским языком прокомментировано:
«// Здесь может быть ваш код который сработает по событию "load" не раньше»


foxboy пишет

custom_buttons-0.0.7.0.0.17-fx-paxmod не ставится на 29 луну, на 28 идет.

Как такое даже в голову могло прийти! :o
Дичь какая, ставить это на Pale Moon.
Вот, тяп-ляп, попробовал подкрутить оверлейное, только для PM29.
Извлечь из zip-папки и поставить.


sandro79 пишет

А можно ещё этот скрипт изменить так, чтоб открытое окно "pageInfo" переключалось сразу на пункт "Разрешения"

Ой, там мне что-то приглючилось, что Ctrl+I с fluent'а, а он же с атрибута key.
Как-то так, наверно

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

Выделить код

Код:

(async n => {
	var menuitem = n("menu_pageInfo").cloneNode(false);
	menuitem.id = "context-" + menuitem.id;
	for(var attr of ["key", "command"]) menuitem.removeAttribute(attr);
	menuitem.setAttribute("oncommand", 'BrowserPageInfo(null, "permTab");');
	n("context-inspect-a11y").before(menuitem);
})(id => document.getElementById(id));

Отредактировано Dumby (13-06-2021 02:30:37)

Отсутствует

 

№1559912-06-2021 23:33:33

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 333
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Я посмотрел на синтетической странице,

От тут не понял совсем. Код в обезьяне работает и больше никак.
А за "предупредилку" - класс! Благодарю, черта я бы сам сделал..

Отсутствует

 

№1560012-06-2021 23:37:40

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 686
UA: Firefox 54.0

Re: Custom Buttons

Мда! Видимо времена взаимопомощи, окончательно канули в прошлое.
Накера тогда все эти форумы??? Варитесь в собственном соку величия "ЗНАТАКОВ"
Спасибо, что хоть до ответа снизошли.

Отсутствует

 

Board footer

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