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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№1675105-04-2023 11:36:40

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 312
UA: Google 2.1

Re: Custom Buttons

Dumby здравствуйте.
есть такой скрипт cookiesPermissions.js, для перехода на [firefox] 112 сделал сплит иконок и подключил так

код

Выделить код

Код:

...
	@-moz-document url("' + window.location.href + '") {\n\
		%button% {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC6klEQVQ4T42Ta0iTYRTHz7vru1tubuomFjkLUVHT5swbNlKjUqgPmmBQEZillFZkBInfvISZkIVBSKBgGhRogRqk6LLI6+Y0p27SzG05L9Ntzs1t7X3FtbSgA+fL85zzP8/vOecg8A/7VBJEs63rRABIjNsDtsNcerePUFj8wcTa+Q3sBPlbft81H47Nar0SEJaQyo9KPYJyeP5YnHXF8FMn6x3VTw70UlD0Rcoz48oeAazy+orupjAlN0cQmRSDMplAIJNBKpVCglgMVpMJtHLpiKqvpZXF4dftEWjPI53wCxWVhkpy01k8HlRWPITiogIgoyi4nE4gUamwbjDA1MeW7sWpwSqPwA6z1Q6lfsHRqSx/AZNE2wcs/kEg0bmAEEk47dchGSQmx8PC5Jh+rL3hKS7gzcwLj5cwuEEMl8sFdosRVjVKsJnX4FWnAopuFQDKYADRjaSdUdoHWmuakf9hXpqVg2V5AdjCWHcyFbB/0c+pt/pbaluR3cxbm5uwZbPtYZ4f7QUynQ3jM6uQIhGDVjW1/OVd00vk9XlSWXTW1euBYdEBGE91VR0U38j3dHeHWascB4NaASHiDDAZjTDc0y7TqifKkeZsYqPkUlme/NscOU4UCWQaDTbNZqiteQ4lt/M9zAtKJaiHu0AYdwpmFcMambS7C/XhFiONZ4nNaZfv53AEgSTL2hreKsxQOh2sFgsgBMI2s1oF8p639g0Cqvo+o/hMJDPu3X1v1iENWaRH8WcuXBQIQ32xxMqyerjz4DfCQP8IzqyZnrBLO5omTTZXBdsXOgrbwISP8pNM4jlBcHh57PGsKKr7+WQKBTbcCPglVt195s1c1OF44z3+SH22H9NqXHoclZSeERIRu59AJOIL0vdhEJLTROB0OP5gLmxbxCvvGD5I1acZfIfdXHngUMSxwxFHBWwuj0FDaaD9oTFPK4a03sy7l88zyvXZwFxdhkwXwEmnC4KxQAICandApzfzboFfzENQQBtpnroAAAAASUVORK5CYII=") !important;\n\
		}\n\
		%button%[cb_cookies="default"]             { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC6klEQVQ4T42Ta0iTYRTHz7vru1tubuomFjkLUVHT5swbNlKjUqgPmmBQEZillFZkBInfvISZkIVBSKBgGhRogRqk6LLI6+Y0p27SzG05L9Ntzs1t7X3FtbSgA+fL85zzP8/vOecg8A/7VBJEs63rRABIjNsDtsNcerePUFj8wcTa+Q3sBPlbft81H47Nar0SEJaQyo9KPYJyeP5YnHXF8FMn6x3VTw70UlD0Rcoz48oeAazy+orupjAlN0cQmRSDMplAIJNBKpVCglgMVpMJtHLpiKqvpZXF4dftEWjPI53wCxWVhkpy01k8HlRWPITiogIgoyi4nE4gUamwbjDA1MeW7sWpwSqPwA6z1Q6lfsHRqSx/AZNE2wcs/kEg0bmAEEk47dchGSQmx8PC5Jh+rL3hKS7gzcwLj5cwuEEMl8sFdosRVjVKsJnX4FWnAopuFQDKYADRjaSdUdoHWmuakf9hXpqVg2V5AdjCWHcyFbB/0c+pt/pbaluR3cxbm5uwZbPtYZ4f7QUynQ3jM6uQIhGDVjW1/OVd00vk9XlSWXTW1euBYdEBGE91VR0U38j3dHeHWascB4NaASHiDDAZjTDc0y7TqifKkeZsYqPkUlme/NscOU4UCWQaDTbNZqiteQ4lt/M9zAtKJaiHu0AYdwpmFcMambS7C/XhFiONZ4nNaZfv53AEgSTL2hreKsxQOh2sFgsgBMI2s1oF8p639g0Cqvo+o/hMJDPu3X1v1iENWaRH8WcuXBQIQ32xxMqyerjz4DfCQP8IzqyZnrBLO5omTTZXBdsXOgrbwISP8pNM4jlBcHh57PGsKKr7+WQKBTbcCPglVt195s1c1OF44z3+SH22H9NqXHoclZSeERIRu59AJOIL0vdhEJLTROB0OP5gLmxbxCvvGD5I1acZfIfdXHngUMSxwxFHBWwuj0FDaaD9oTFPK4a03sy7l88zyvXZwFxdhkwXwEmnC4KxQAICandApzfzboFfzENQQBtpnroAAAAASUVORK5CYII=") !important; }\n\
		%button%[cb_cookies="allow"]               { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADAUlEQVQ4T42TXUiTURjH/6/bdHObuZy6iUXqQlT8zDQ10eFHlh/UhdMwqRDMQtIiEIKsm0jNPoQsvAgvRNQV3XihM2UTMS+y/EYd0xl+zPm5qdM5zbX3hFJZ0AOHc87D//mf83vf51D4R3y648mxrM+HA1Sobbj/lFn1ttFnzxf1Rr+Y2aIz1N/qu24eEVjM5jx3v6g4UVBcCFsgdKN15tWlhfnBzn79aE+nPZv9NvaNcfWQAX3y+up8kXdstkwcGBPK5vFgx2Khu7sbURERMG9sQDfU3TfZ1SjnC0RVhwyac5gJrr7hJb7S7CS+UIiyJ09RXFgAFpsN694emA4OWF9awriy8ePieG/5gcE+s3kHJa5ewXF8NzGPyXECX3QCTEcXUAwmof38ZRDRZyMxNzqgH2iueU0MfmUW+kdKuS6eXKvVip1NIwzTalhMa2hSjKDwbgHYXC4YNiSdRr3TI39WT/0P8/LEEDZX5uDsHWYrdgD9XfRT2t1Kbcso9Sfz7vY2di2WQ8wz/Z1gOTpjWGNArDQCOYYOgkS9z2KWBqffuOXhF+xO81SUV6H4dj4aDKO47Ox3wKxTD2NJOwKfiGRkLrQgJSUFra2toOozGbXSa6U5Q2NTrNPhgWBxONg2mZDx7QM5oc0/lzDPqdXQfm1DqZ8jMjIyYLHdkhjUXmTUJ16/LxOIPZiba2vkV9FxfvIdZDIZ5HI5VCF50GsnkWVUkpzRaCQahUIBqiad+Twy9cpVsbfvUTpZVlqNew/ykaxpQmJCIsQeYtTV1ZGC3Nxc6OZ0ZN3e0Y6RohGKepXGuCT28n8UFp8e5GC7PsveHls2BOlYPaRSKRFLJBIyazQaMiuVSkyUTJAWoKozXXlm4/LLoJikZJ+AsGN2DAZ5IF3tvShxG0J8fDwp2g+VSoXZh7MHDUgWFRe4ou87prLjkoAzJwNOiZ1dhFwOmwPd7LQpVdfitG9CFy8+Xvyt/Q821ZngGVaQZgXO7VnhRRvbUdDaBIrKcEEDvV8tP/z4fgAyxDtBpHZ35gAAAABJRU5ErkJggg==") !important; }\n\
		%button%[cb_cookies="allowSession"]        { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADJElEQVQ4T4WTC0jTQRzHv+c23dzmI2duUZFWTh1qPsrSzMx8YA4qsCylJ5iFaEURvSQoSI0yQ7MJFUWSSUSoiFpRYSbiK42lk7CX1WbzMXXtmf/2/0crs+jguLvf/b7fuw/3O4J/tOcH5vLME+pwgITYutePNEpj612OQnF7ZNGggY6Qv+mb9rq6m43G3V7+K2LEQTFLuO6i2XSecVQ7pO55+kLT2/LUkcu9Gl2mG51hQJ88MarO9YlO2yQJjArhCgRw4HDQ3NyMFcuWwTg5ic8vm7sGmiqrhO7i4hkGNensOE9p+BFpbFq8UCRC/tlz2J+dBQ6XC2pqCmwnJ0xotVA9rnzwRdVeYDf4yWy04Iind3CMcLZEwOa5QCheALazBwiLzdC2dfQgcmUEPvV2a7prFJcZg9+ZRQERsXyPuXyKomD5qsPYh36Y9eO406BE9sEscPl8sGxIn1/3W1qqzleQ/zH3vZ+E6uMktFYX5gZezhb4iBzA0w1Yn1UWVZE/ma0mE6xmM8Pc/sYEtdUTMpkMUqmUMVCpVFAqlWCpOw2a+oIr5O5mdl6wfM++Of7BXjRPYUEx9udkYmCYQr9BgviERLi6uqKzswOhoWGMiU6nw4PGBmi6aopIRSrreuyOvPSXfW85S8MDweHxYNLroWh4i+QtWfALkDGim9fKsW1Xpr1s+l4p8bC+toFcX8+qWLvz2CZ3yRz21/Fx5qnoVt5qRc7hE3ZB5Y1ypG3/ZUBvXDp3BkQhZ1+IWJexXeIjnUUH8/NKcehkJspazMg9etpucPzAHvt8TWIK4pLkKD57EqQkhbVB4h1wKnS1PMjJdn2OoyMMNoRqpQl+q1LhHxSGJ401WJ0gn1b1vT0daKyuqiOlqZ4Co274YlBUfMJCWeg8BxaL+SD3H6lgWBCJpI0ZcJslmiYeG9Gi/t4tqAffbWUKqTCZL/5m0efPXyRbvlgWJnHzEPF5XB5qO4esw3xfp+Cl0QgIiWBMXnW1orutiRafLikpybOXcmkqBGMjSKGAxCkK3nSyA8GbEVHMhN7F15ciJJGOEULqbMMthUJxm15/B71yOwKx0czLAAAAAElFTkSuQmCC") !important; }\n\
		%button%[cb_cookies="deny"]                { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADN0lEQVQ4T4VTa0hTYRh+zs6ZO2s75dzWNlmhdpmXmmWWXTErCzKhC5ZdoCLohpVFEASNoB+ZUSZkF6IbZJlGBlphF8JqFaSVmdksSrTM5eZ0c+7s4k7nnEiiC73wwXd53+d7nu95PwL/iCc7jfKApzMVICbyQ/cjjbPz42UEo6+bXvTZJ+wQf6t/tGWYKsCyG3QJ09L15vQJtEozXMhjXY5vna9rX9mbn9ZG0PTZWSd7XX8ACDd7XJ074mblLjeMnzGRViohkUphtVoxbcoUsH19+NpoffnxUVk5o9IX/wFQtZqaqzWl7jFl5GYyGg0KDh5Gft5mSGkaXDgMSiaDx+GA7UHZ3S5b3aFBgJ+a2SD2aGOT05nhBiUlHwpGHwNqiBoESYlqn9e/xvSZaehobrA3VJ0+IQL8qlmTmJahUBsVHMch2N+LnvYWBLxuXK1pQt6uzaAVCpC8pK8fWoJPy4+UEv/THGxoBtfQBHm3V2Tg12sQNsXgCxkKPS4rKid+1xzy+xEKBETNsL6A795jODs64LLzDvKh0ukwMj4eXYZIX1XjzVPEtRWUJTl709bohGSdoKfwUDHyt2+E5H0rQjfuwf65HYw5Cez8SXB8akJaK4EgRSHU04MPAUcRUZpDns9YZ1nd+K5VOjl1PKRyOfxeL9qKL0Ld7QI1JgZReevQ0dKCuPsveAoq1FdUQGs0gtGoa4jzi8nSeev3LlcZoql+t1u0SoyiC2B5ILllG4ReYM5VDhbfHYWLq/zGtcKDEqezqaNpWWvWGuJMUUJdgaUEu/dtxEDhGfHFHyYnYJnTM1hcE4uVkVGozvHGe4QLiOOLyCWG2MT9KbOzzTKevjQiAj7+IFhWDaa3X6T6k/azRHJpXvVApSMr4U6Y4zLdTuctoiRHq2R7ncfMMzLnj0pKGSEhSfGDvLl8GzE2G7TxJrTV1aN2tOQsPUydn+vXX5fR9Bx7exsZYH2rxEYqXKjQDwS9BSNHJ00dkzTJEKnWKOS0HF0V1SFJ/VuZYJtgnxCCnYKtPrfngNkWsAy2ckkOlD3dWMQBC8IcYoVkCYFP4xzwRPdhrITDAhGBwC1+finlI64Iy+/RPFbh6B52nAAAAABJRU5ErkJggg==") !important; }\n\
		%button%[cb_cookies="unknown"],\n\
		%button%[cb_cookies="error"]               { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADEElEQVQ4T42Te0iTURjGn89d/Oa2pjl1E0ttlelK85bdZElaUEoN0hYKFUI3pLyFEDQUAi9hJmShYBa0WhYJWVT0h0mZRcpyak5zKlZOpzl1XuY017dvJFYGvXDgnJf3fc7745yHwD/ibYYPx2oejACIUGp5OcpsQ9TSsPmipu0lX2fsGWK5/tenBW5WiyXVK3CbTBQs20y6CT3tdRbTiHFQW/9xqKOxnk2SldE3xk1/CdhvNpsGz62JViSJN+0IJXk8OLFYaGhowLYtW2CZnIShtUHT81pdzXcTlf4lUJvM3O0REJETEKOI4wuFKMi/jPS0U2CRJGwLC2A6O8M8MoLOOvXL4c6mwkWBX8yWOeR4+IfI+J5iHpOzAnyRH5gu7iAYTJr2Q7MW23dGYaCjZailtvw6LbCUWRgUFcN19+HabDbMTY9j7EsXrFMTuP+iHWmZp0ByuWBQSIburrnG6mIV8T/Mxp5K2Jya6AnYZCwEnnIM9fXOv1GXVBN/Ms/PzmLeav2NWa9Jwfojelqg654ErsJ8GHo6R98/vXObeHiYqQxJOHnGOzDEy85TVFiK9LMnFl+3o/0WJJHh8NiYSueG2yph0unQ1jiuNfR+yiVUiYyqmGPK5FZdHysyYhNYHA5mp6ZQUlyBjKwT6O/ORqhCjea7CpysCEfTq/PQqBWoe+BUSQrc04mqgwxV7PELSW5ib+b0xAT9VPYgXVww0P8YPPECfKQxaK5ROgSeHcDX9jr0aOqKZZnIJsoTmFei9qccFa8JWGlvLFCWIfuiA+GzTgnZoWR63/xc5RB4tIE+1z9UYVcWCOJaPEMu9g/KDduVEOxMjc9iszFDIQwbX0Eg1EMS6E03mMfM6DLwEB7o+Dr6jgHodd/yiLJED55l/PvV4B1xeyTSsFVODAZtEG3LJcTLaQs4JnhndExw88ti7kmN0WGmon1c0Y+5qYLVa6Vb10nDxa7uQm5b2xWGXL5Yu+ympmaJG8sSwRsbRbwN2Ltgg7+XL/y8feFLeQl8PkDR0TFDmdhsBihPwWJB3k8XVTr9Yr7r6AAAAABJRU5ErkJggg==") !important; }\n\
		%button%[cb_cookies="notAvailable"]        { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACm0lEQVQ4T41TXUiaURh+jyj+RmjhtotBQhhZjCVSwwIbYxuYgrswL7xQ2JWzmF61q9HdJtTcCNbVGLsIoi52Y8E2kISCCauGpFL4U1i0dqFE/oSO2vsepkhusA8O5+N8532e93ne52Pwj8fv90vPzs4M+HkA17U/105w325ra/sWDAYrdMb+Vu/xeJTn5+ePe3t7Tf39/bfb29vVdO/09PTnzs7O92QyGZFIJO/m5+cLLQDEXCgUno6MjIzrdLoBuVwOQqEQNjY2YGhoCEqlEiQSie319fUlpVL5pgXA6XTe02q1UyaT6T5egEAgABMTEyAWi+Hy8hJEIhEgAUQikS97e3uBBkBdc61Wm9JoNKbOzk6FVCoFtVoNCoUCBAIBV7u1tQVGoxGw+CQUCr3lAM2ae3p67nZ0dMiJrVwuw+HhId/D4TDvhECpi2w2W1teXl5g/6N5f38f8vk8YGe8WCaTEfCvxcXFJXZVM0qAarXaojkWiwEZSmDDw8O051dWVj4wh8Px3GKxPEHj+KxnZ2fB6/U2plvXnEql4ODgAAwGA2A+YG1tLYYyppndbn/vcrmcu7u7Ir1ez5krlQrMzc3B5ORkQ3Mmk4HNzU0YHByEeDyew7F+xnz4mM1mW3C73ePotrBYLMLFxQVnJ51kHrlP77lcjkZXY4xlsJuv6MWz1dXVH8xqtb4aGxtzdXV1qahwZmYGfD5fQ0I0GuWa0+l0DceWRH9eqFSqEE6gyKOM+h+hu9Ojo6O3MJ7cZWKmh9jprFkzgnxsjj95oMCMv0aWB319fTepCNvk0aXAkKRmzXXmOggPktlsvo7je9nd3X0HQW5QkIj56OiohMXHzZqv/nyNKFMnGBYLJvAhLg3Xx1gW16dmzVcBfgN5FlQ7XXON/wAAAABJRU5ErkJggg==") !important; }\n\
		%button%[cb_cookies="defaultAllow"]        { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADMUlEQVQ4T42Ta0hTYRzGn+M5c2e3crm1rYu2WQ2TadrStMSkG1RCfdCCgoqiG90pgiApCLKiK1n0IQzKMOlbUFarJksttDJdLZe2oLnt6K666TxT184iqSzohf+X9/0/z/v/vS8PgX+sxoPTBGy/Sw8Q2bFS/GiLMrF6lyhRthRctA9yO8Tf9KZdE6VsOLxVkZ5fpMwsmktLZZO5vrDP3eNqq29lLE31iTR9s/B6wDfOgLu53+farylcX6bSLcymxWIk8HhoaGhAfm4uwsEgnO0N776YamolUuXlcQYPNlBL5Fr9UW3x+mUSmQwVp8/hwJ6d4NE0oqOjoPh89Lvd6HhR87S3o+XMmMFP5nAER+XqrCLJZJWYEkyARDkDlDAZBEnFaZvftKFgUR4clvfM+wc3rsUNfmWWzckrFiVPE0WjUUQGAvB/s4IN9eHe4w/Yc2gnaJEIZAzJ2WmNNNWeryb+h9nT1Y4BrwNJmpyYmA/uXZivtuG7TXfqiT+Zh4eGMMyy45jtrfXgCZNg7vSjsDgXVc7mwc+uz63E/XVUeVbJjt1T0rMUHM/ZM5dxYN92tId7oaPlY8xOqxlu2wek5S7HHY8ZQmECY+hqMxLVpWRV8ebyDe2fvvLm63XgCQQYCoWw7+Ft5BfosWWqPs7ssFphe/sErVnpkMknBrp9TFddwFlHVK0hq5duOVYmVU2hBvr64l/FrZqgFdpZs/HR8hHbUhaAsX3B1Y66EW12to/p99mHdWmGR69eBokbJdSFvFUbN6k02kmcsKK8EoePb8dtrxkatQZ+XxD+Pg/83t6RZCnf7RTyTZFUhfVZo4k17zWfJK6uJteq1HNO5CwuyeTHxuclJmIwhnDL3QZ1zICiKIhFQjgcNsYy6DEG1UqL0WhE55HOk/EsVJbKxeGA51LmwmXL0zJypieQZDwgJkMLOnQkUlNS4fa4At1+Z1cgfXrd86ZG1n7cHhePhensSpFyJBKqSJmZsWBWxjxVUrJMJKAFcHZ/C12wGVnpVIU9oFEaDC2vgz2nesbEv6WxshRivxero8CK0SjU3GECAVtsmsdXcqS6CEmw3grvb2Ku5zvxg2tkeIR+owAAAABJRU5ErkJggg==") !important; }\n\
		%button%[cb_cookies="defaultAllowSession"] { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADaElEQVQ4T4WTfUxbZRTGn/vV3ktboHALLR0E1pGG4cAho2OMINFtiQ51yZhLppnGBKdZFI3JEpMR/zFjM4ojYzKDITGSIFGzuMRss8uGUJd9uEG3tSsFJ7bYdkDLbW+/S69t1cU4jSc5f7xvznme95f3HAL/ET++tYZLhLyNALExk6V/lEm+TN6UqbTXt/S5o9kb4t/6J14rUCdisVdKa5rbtHVtj7JqviRbFwss3fdax6d89svjMpb9rPUTIfCQQNY5FPC+ubZ17x7dhpaNrFIJkmFgsVjQ3NSEmCjCc8ty8+eJ0TGVWnv8IYEz++gnNMbGQ8b2vdtUPI/eIx+g++ABMCwLKZ0GLZcjtLQEx8XR7xcd148+EPiLOZbEIU1VfZuqRKekuXyotJWg84pBUHSO9tpPVmzZasJv9mnf9JlTJ3MCf2fm15vaFcVrFJIkIRkRsOKaQSIcxJfn7uDg2wfAKhSgMkie2Znk5bEPR4j/Y/YuinDNuyCICbBFOqjkBDSFcsR991KTo31jxD+ZU/E4UolEjnnBn0SEzEdBxpVJihlnFjbnAvIUDMLuOyHHdyeHiK+ep3vqO159vaymvjTLc+zocXS/0YVAVMJyUgk5p0J1tQHO21PI52gU6Q0ICgIsl8w+390rR4iRTmq4/aWefbfu/sJsatwAhuMQD4dx4vMLeLGrC1q9HiRJYfLCeVSUFkKtXwfBvyw4Z2fn7N7UADH8HDXy5Mvv7lHryuhIMJj7qmxM+yg0bNoMgiBAy2S4Mm7OsKtWJUYRSKYld2XTs+ahoU9F4lQH/ZHp6Rf269Yai7KNvT0DeOdwF665VmHa2g73rx5UVOlxemR4dX7OviRS/ERzx/6Z7c/sTvS9fxjEiZ3ULl3V+vcaHu+ok2eez2TcohkEx/0U+Mpa6PQVmLFZwXF5PpnGcKmkptWeNbJZb+D8t2NOYqBTo4wJyx/XtWzbbqhtKCcpKrcg58xWlDWYYDA+gmg0KoTE6Jy+ZfdZRq5MrPj9OPvNF1j0uL7ODdKxpxTa1WS4t2Jd7ebq2sd0hcW8gmM53HB44q5gKqLSlLubdnWb2QJetE1dxdTVSfgW5n/o7++/+GCUBzqhXPFjpwTsSEuoygqTBO5F8o02P29aThNs+Z+b6yRJ0jo4OHg7e/4dGhFl3RS3wJwAAAAASUVORK5CYII=") !important; }\n\
		%button%[cb_cookies="defaultDeny"]         { list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADYElEQVQ4T4WTa2hTZxjH/2/PJeeYpG2a1FzUsTYbXa1NWq3W6qR2mwqbhcloJ3PiRHAqRes2EAYr+2Z1bJ2wbggTPxW6og7Rgbtg6WoUaVy1F5vGa9cu7WmT5nJyOTm5nOVEJmNu7IHnw/vyPP/n/fH+H4L/iOtHl/OyOFcHkNpcmp+UKUIuh1m9xb2hayah3pB/6x88WGSQJWmfubKh0eJorOEMpqVqnRT0z8+NDNwWJm4MsBx3ZtM34eAzAupkMTh3pHzTzlZr9cZaTqdDAcPA5XKhYd06SNEoZkddww8He/v0BsupZwQu7aJfLa2oO1bRtHOL3mRC5/HP0N52AAzHQclmQWs0EP1+TPb3/rww6T7xVOAvZimFY6Vlzkb9UquO5guhtzwPeokRhKLztEO3RrDh5Xr4Ju4Idy6d/jov8Hdm08r6Jq1xuVZRFKTiYYSmvZBjEXz34zjaPjgATqsFlUOave9N3ej7vIf8H3Py9z8Q94xBCSyCM1ihFOlB2cyYDQfS13q7+sg/mdPJJNKy/IR5yodsTiAkCBDuj+cmc4jINKrrnBDSoth/7cK35NzbdIez+f1DtkqnWeU5eeIU2g/vBwmEkPU8hHfSC/vaWoSKafgfjWOV1g5JTmHOMyL4AjPHSU8LdbbpvY5do57HzNq6ajA8j2QshitdZ/BKTRVYSym0DWvg83oB1yAMdgfuXv0pnBFDDyoMy7rJ2Tepntf2ftxqsNroeCSS/yo1aPc4pHgMzOb1UL0gX72OBWEqMzPqCbop/w9vJW0LBl1hlJxupr+of+PdPdbyihK1sbOjGx99sh9Z1y3QDAuXnMY2swliXMy4L/T6R4vQXlyCy62xlz6U4nGQr7ZTO6xlKz9dvbnZock9n2FZJHIImTEvNMk0Co0lkAnB8MXzwgQfPNh2OfO9v7lyt5JRyiPB4D3S3VKqk8KBLx0bt2y1V61eUUBR+QUZujgAR6EGS3ICj38bCt9MTJ3jiozt76RsO1gNWzY/PU0S0eT5vJFOvq61ZFKxzudeqFr/YtUaa7HRpOU5HsJNdzLsvh3nNfRMjcX+C0+x0dD8PBZ9PiTC0V9XTUr9T63c3QJdaBHbFWBbVkGZKlxA8GiZiLuViwgwWazILzRwjyEYcT7AmHr+E5EUd77R7OXNAAAAAElFTkSuQmCC") !important; }\n\


в [firefox] 102.10.0esr и [firefox] 111.0.1 Unbranded работает на ура, но в [firefox] 112_0_BUILD1 Unbranded иконок нет. Можете посмотреть есть ли возможность с использованием list-style-image вернуть иконки.


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№1675205-04-2023 13:11:37

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

Re: Custom Buttons

Farby пишет

сделал сплит иконок

Круто! Я, вроде, тоже сплиттил, чисто canvas'ом.

112_0_BUILD1 Unbranded иконок нет. Можете посмотреть

Сходу — нет.
Сто лет не ставил Unbraindead (за ненадобностью),
поэтому, тут бы хорошо было дать его ссылкой.


Однако, уже для 112.0b1, дополнительно, нужна ещё и такая правка

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

Выделить код

Код:

/*
	icon.src = "";
*/
	icon.removeAttribute("src");

Отсутствует

 

№1675305-04-2023 14:48:22

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 312
UA: Google 2.1

Re: Custom Buttons

Dumby пишет

нужна ещё и такая правка

Спасибо заработало...:beer:

тут бы хорошо было дать его ссылкой.

Да ссылок, судя по этой Add-ons/Extension Signing - MozillaWiki, там каждый день пекут, можно растягивать на горячие пирожки.
Я, обычно беру посмотреть:

  • XXX_0_BUILDX пример - FIREFOX_112_0_BUILD1 тут
  • 102_X_0esr_BUILDX пример - FIREFOX_102_10_BUILD1 тут

Я, вроде, тоже сплиттил, чисто canvas'ом.

А вот с этим я пока ещё не разобрался, тем более применимо к list-style-image :o


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№1675405-04-2023 19:04:01

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

Re: Custom Buttons

Farby пишет

MozillaWiki

Точно, вики же, спасибо, есть такая закладка.
Что-то заинтересованный народ не очень-то жалует такие сборки,
подавай брендированную, но избавленную от подписячей дури.


А вот с этим я пока ещё не разобрался, тем более применимо к list-style-image

Да, полагаю, и не особо-то и нужно.
Раз сделал — значит, наверно, ловко управляешься с графическим редактором.
И запускать никакой подобный код не требуется, разве что на интерес.

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

Выделить код

Код:

(async () => {

	var fragment = String.raw`

		%button% {\n\
			list-style-image: url("data:image/png;base64,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") !important;\n\
			-moz-image-region: rect(0, 16px, 16px, 0) !important;\n\
		}\n\
		%button%[cb_cookies="default"]             { -moz-image-region: rect(0, 16px, 16px, 0)    !important; }\n\
		%button%[cb_cookies="allow"]               { -moz-image-region: rect(0, 32px, 16px, 16px) !important; }\n\
		%button%[cb_cookies="allowSession"]        { -moz-image-region: rect(0, 48px, 16px, 32px) !important; }\n\
		%button%[cb_cookies="deny"]                { -moz-image-region: rect(0, 64px, 16px, 48px) !important; }\n\
		%button%[cb_cookies="unknown"],\n\
		%button%[cb_cookies="error"]               { -moz-image-region: rect(0, 80px, 16px, 64px) !important; }\n\
		%button%[cb_cookies="notAvailable"]        { -moz-image-region: rect(0, 96px, 16px, 80px) !important; }\n\
		%button%[cb_cookies="defaultAllow"]        { -moz-image-region: rect(16px, 32px, 32px, 16px) !important; }\n\
		%button%[cb_cookies="defaultAllowSession"] { -moz-image-region: rect(16px, 48px, 32px, 32px) !important; }\n\
		%button%[cb_cookies="defaultDeny"]         { -moz-image-region: rect(16px, 64px, 32px, 48px) !important; }\n\

	`.trim();

	var img = new Image();
	img.src = fragment.match(/data:[^"]+/)[0];
	fragment = fragment.replace(/\n^.+list-style-image.+$/m, "");

	await new Promise(r => setTimeout(r, 500));

	var canvas = document.createElement("canvas");
	var mir = /-moz-image-region.+\)/;
	var ctx = canvas.getContext("2d");

	fragment
		.match(/rect\([^)]+/g)
		.map(s => s.match(/\d+/g))
		.forEach(arr => {
			var [top, right, bottom, left] = arr;
			var w = right - left;
			var h = bottom - top;

			canvas.width = w;
			canvas.height = h;
			ctx.drawImage(img, left, top, w, h, 0, 0, w, h);

			var url = canvas.toDataURL("image/png");
			//gBrowser.addTrustedTab(url);
			fragment = fragment.replace(mir, `list-style-image: url("${url}")`);

		});

	gBrowser.selectedTab = gBrowser.addTrustedTab(
		"data:text/plain;charset=utf-8," + encodeURIComponent(fragment),
		{index: gBrowser.selectedTab._tPos + 1}
	);
})();

Отсутствует

 

№1675506-04-2023 10:01:39

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 312
UA: Google 2.1

Re: Custom Buttons

Dumby пишет

разве что на интерес

Ооо... Спасибо, шикарный конвертер, положил в кубышку. :beer:


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№1675611-04-2023 12:33:42

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

Re: Custom Buttons

Custom Buttons 0.0.7.0.0.31, paxmod и bootstrap в zip-папке.

Отсутствует

 

№1675711-04-2023 19:08:07

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

Re: Custom Buttons

Dumby пишет

Custom Buttons 0.0.7.0.0.31, paxmod и bootstrap в zip-папке.

Спасибо.

Отсутствует

 

№1675815-04-2023 09:21:51

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 112.0

Re: Custom Buttons

Подскажите чем заменить в кнопке Undo Close Tab этот кусок

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

Выделить код

Код:

//===================
// Styles
// Used icons from Undo Closed Tabs Button extension

// Styles can't override hardcoded icon
if( // Remove icon only if nsIStyleSheetService works on-the-fly (Firefox 3.0+)
	!Components.ID("{41d979dc-ea03-4235-86ff-1e3c090c5630}")
		.equals(Components.interfaces.nsIStyleSheetService)
) {
	let icon = this.icon
		|| this.ownerDocument.getAnonymousElementByAttribute(this, "class", "toolbarbutton-icon");
	if(icon)
		icon.src = "";
	else
		this.image = "";
}

var cssStr = '\
	@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");\n\
	@-moz-document url("%windowURL%") {\n\
		%button% {\n\
			list-style-image: url("data:image/png;base64,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") !important;\n\
			-moz-image-region: rect(0, 24px, 24px, 0) !important;\n\
		}\n\
		%button%:hover {\n\
			-moz-image-region: rect(0, 48px, 24px, 24px) !important;\n\
		}\n\
		%button%[disabled="true"] {\n\
			-moz-image-region: rect(0, 72px, 24px, 48px) !important;\n\
		}\n\
		toolbar[iconsize="small"] %button% {\n\
			-moz-image-region: rect(24px, 16px, 40px, 0) !important;\n\
		}\n\
		toolbar[iconsize="small"] %button%:hover {\n\
			-moz-image-region: rect(24px, 32px, 40px, 16px) !important;\n\
		}\n\
		toolbar[iconsize="small"] %button%[disabled="true"] {\n\
			-moz-image-region: rect(24px, 48px, 40px, 32px) !important;\n\
		}\n\
	}'
	.replace(/%windowURL%/g, window.location.href)
	.replace(/%button%/g, "#" + this.id);
	
	
var cssURI = this.cssURI = Components.classes["@mozilla.org/network/io-service;1"]
	.getService(Components.interfaces.nsIIOService)
	.newURI("data:text/css," + encodeURIComponent(cssStr), null, null);
var sss = this.sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
	.getService(Components.interfaces.nsIStyleSheetService);
if(!sss.sheetRegistered(cssURI, sss.USER_SHEET))
	sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET);

Отсутствует

 

№1675915-04-2023 14:20:14

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 312
UA: Google 2.1

Re: Custom Buttons

Andrey_Krropotkin пишет

чем заменить в кнопке Undo Close Tab этот кусок

ну весь кусок я не менял, а подарки от Dumby я попробовал в действии

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

Выделить код

Код:

var cssStr = '\
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");\n\
	@-moz-document url("%windowURL%") {\n\
		%button% {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEEUlEQVRIS9XVbWxTVRgA4Pfce3tv27t2bbNuXbfCBuyzAZ2MEdkkLH5gJvEH8TOZEo0JFdgmbgjTgEHUGQXGMJEMmDJMiNvQjS9BJhH8MY3IfsB0rnTraCcbm13b2+/1fni2xAVuxOHAH57+adNz3uee9z3vuQj+44FmG79VksglAIoMgBhCSLpdnFkBkiQxl2OQgRdbJhjoKkQofM+ALklSGSNwf1iAjbXNZ3MdI+MB+7vPF989IEnoZwBVQhCWBgVhW13b+WX5KXpFR7fDe/ntZ8wYiONUiXLojlKEU4LGANgRDpZHBH7r9iPnilZaM4jKFTlQ/P5XvHV+6o5si7HzuWUL+hzngSstRfxf0DSwa9cHa3GgWgmQTv4UNMMggyWTMuYtYepOXCKfKMiGZ4tyQEMDjPrDcGVoDI780As3/AGhJIVs2vTk6pqkJAhOFn8KaG1tpV1u53h5+RpGr7s1/uTxCIgk6g/EiaqmM2i5NRseL7SCgwMg8Wo9A5CsBLjPADDki8CbbRdgQiI631n/2NOFANwUUF9frxPECVf1628gn893Sx55IIhxBavcffIi1fO7H15atRJiAoD8XBI4UmYCwOIkCdY3fyuyrGrHZ+UldXJAwoDn5hThQESYpNXXQpJuw4HTiuzM+fBAfu7UFIQ/0wN/nfydrEKwSCdARfMZftVSa6kcEPx+v0NeA7wlKowYXX+AT604+DWTmT4XcufhFsN6r9MJ/gAHiVotpBmNoNNoIctAw8Xf7FKMjx2TA7zX6/3p7860SBCKEGJSBrj4PIyozMkm0KhZsDv7hTUP5Xt+HfFpuvqGVBZTKizEuOePEYiL0V/kQJzjuG9u1zS8RDAhRFv6/FFr5YFTaopicJGRt932yDmJQLQ3JpY9+lEHVZCTB6PecTAmEMNyIIZr8MU/3U8iSSo5RGfZPZGFFftPaU0a9dgxW+mXBEGQtJJ5xbq1hUo3mdENzxjYyoq65UAUA5/MdAGKiFQHSGbB1WEPDZGIq3COYRQD1I/XPJttn39PKRlWYpUgfvraU2/JgXAwGHxvRkAUEd6JAteYJAUhioNLwaigLN1z8sNQLA5mQyK//YWHr8zRaV9EjY2NikDAuwkQ2oL7IIRH9UzATf9PPuBUS4gIKY92u/Zf5zhixaKsAa1BXzOhhrNoz96d21JNaavT0tO9xQ+W5GDg5X8BTE/lCSIBUcqW3kGX3XW1Jz7sdtVXrn31EGpo2Nm0bl1VHt7maTw7Eo1GL8wGwPcOiRSKMpIgUpzOAd2JjqOdNTW1B1HDx7ttlRs2mnCDHZ5NYPkalmXnut3uxe3tbZeqqzd/h/bt21tgs1WocYP13AtAr9cnDg4Omo8fb7leVbXFdUfvg7uB///An8idyhRIYoVPAAAAAElFTkSuQmCC") !important;\n\
		}\n\
		%button%:hover {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAECUlEQVRIS9XVe2xTVRgA8O/ce3tv310fa8P6AOoapwznYtXFzchQJNEYNTHEODSaYLK4jsEaGcQnEpAQu8r+WLJMMmOMIQXnNgeKYTJjfBGzMEGTztVubcGmD9q1t+263t7r2Qxka8DhwD88//SP2/P97vd95zsXwX+80ErjC4JAjE4BvWEN5BFCwvXirAjAwWkfgIVjwczK4Sc7QtlbBpwRBLG+ADVcDnbu+fjUHZMX4+mJA00NNw8IAvoZQKIEsLOp4pv7PaMP2jRKanjclzi/99kKDBSuVaobKhEuCYoCyKIZaMjOcW+89clIXe1qA9H80Hp4uqu/UGszvlNl1J/eVF/pjY9CurERcVcyugq4XAdf5gXowP2SL00XAUkzSGteSxuq7LIDw2Miu9UET9y7DhgSwHcpAhN/RuHrC34QeJ57wED17nryqQ6dDtj5jBYAj8dDB4L+WNNzz0uUStWS+PPHI4so5EtzRNuRL9Hday1QX22D6RkOSLxbShGgZAgwKSiYjsTgo2/GQCGTfbXP8egWO0BqAXC73WVFfi7gbN+Fkskkv1jggCAui2Ri1/BZ6pfpGGy+7x7IFnjA2f69rvziSDopBUY5Cd1ffMtXmfX7+rY2vFsKCBiILwbwfiJL0tIpVihz9J4UlWvL4TaTaWnwRZaMJkFOzMFnP5zjmhprG0uB4szMzGTpkcMImQFG7csUV7X2nmA0ZRow6w2Amw/BSARmZ3MgFotBi8srk0iAERHweygkVBoUg6UAl0gkzl7rTPMEIcogxuBPcVbHByckKrkKJIwYwtFw8cUN1bFfLyaU33uDEp1KDQatDkLRCNy+SnGhFCikUqlT1xsaTiCYDKLNE+n8ndt7Tkp5QKhcKkoMtTwyUgREx7LcY5tdg5TNtBoSbBos5ZJLpUAe9+DoP91PHEmKWUTbJpP59Y7uIYVBKY0NNm/8lCAIkqBE22re9lB6rR7FUwl45fH7x0qBWQx0L3cB8oiUpkmm0h9JiIRsNlBrUkcxQI14w7udx34kxIwE9wLxfW3P7CkFsizL7l8W4HnEk6RovvlksTiLgwvJXEG6sXP4YJ4rQoVGxe3d+vC41ax8AfX09IhS7OXXEBDteA4yeDmXAxY9n3/BhUnApvjoOX9vPJODhnXWKbVWsyMlhdOo8/1Dr1tMa7YYjRWpurp6KwZe+hfA1b/iAyAHmvZ4g0Ff0PtbLhzwH25pbulDne5DPa2OnXfhNAeLON1CofDdSgB875Akw2zCKZn8f0xKhz4fGH21veMIch9+b9uO7U4LHrAPVxK4dI9MJrMGAoHqgYHj405nxxnU1eWqaW1tV+ABO38rALVaXRYK+Q39/Z5wW9vuwA19D24G/v8DfwHJNM8naEZRUgAAAABJRU5ErkJggg==") !important;\n\
		}\n\
		%button%[disabled="true"] {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADCklEQVRIS9WVz0sbQRTHZ3Y32awxYkOIMaQQjBJ026zVVLCeCpX2H2jpqaceSjGnUpBcKj0IpVA81UtLT4VCoYdepJcapBYKGjfNbwNqTGJsbGKi5pdmd/s2tEVCjBrroQMLw8x77/Pem+/MYnTOA59zfHQmwPj4+AWCIG5OTk6+OyrRpgFOp7MTgn6pVCpdLS0t9MTExH49SFMACNaFMZ7v6enRRSKRiiRJnbCWbQgAI8LjWbyBMaFtdC7r67GLwWD4CQRnLBYL4XK5yoIgbKpUqkB7e9u3oSHrlMViz/2J8bcCnl/8TJCUmVJQW0cB0ls/W91u3gqDNBqNVTNoEcrlcmhnZwdtJDdEiqSEUql0zeFwLMj7VYDf728t7xdTV/oHFeBQrAdIJpPkzMwMA5ljnU5XNwfoAgI7tLKyUhJF0T42NuavApaWltolJEQBQGWz2Xw971gsRvM8r+nr68NKpbKhulOplBSNRldBYWwtgNze3o4d5b28vKxdW1vTQRWEQqFoCIEqCtC26VoAARV4GnkCxJRIJExms5mEgeLxuJDP5wmKokSNRkNotVosw/f29hDYLdQCMABcx91ukKYV2mAxGAykDBgZGflUKBQYCHoVMlebTCYMypLh8VoA2t3d/XAcQN4Ph8P2TCbTC1NxeHj4rbwGFYzOuma1jIphoCKUTqdjtQAJAK9PApBtoF3Xi8WimeO4N78Bt+fm5vRqtZqGivIHBwePawEiaPr5SQFVncPNBHmK8hza4giFQx0KSlGB4D/0en13LUAAgPM0gMO2cKhTcA40yNMN79Moy7IZ7PV6OyrC/iuMkZ2zDSgB8KBZADwXz4KhgIAkKQECe2SzDS5ij8c9beg03tK0tpUZhtHANb93BsAU+KvyhXwlHl+f7+cG7uPvPv7FZZazQv9eQi+Fcrm82SyApmk9nIkK/B8GAr6vNlv/U+wL+O6yvawR1PC+2cCH/QBAwlNyJxTyhViW+4gjEa+lu/sSA0ar/wIgCwu+rmAwmIN3K9rUD+c0ifz/gF/LJ4uAUJQHTwAAAABJRU5ErkJggg==") !important;\n\
		}\n\
		toolbar[iconsize="small"] %button% {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACPElEQVQ4T2NkIBL8//+fEQj+oytnJEY/UDPXzPOPTdINZQ+jG0LQgPvv/wvsvf9k54FzN432X39S9rQ3oR/ZUrgBvb29akxMf7mQJcWVNYTeCWvOfvrijVK9nymDRevqKwqsfxdYiLDNqUgP+whSCzZg4sS+dkYmxlx2NrYfMAM4efiYXonr8Z27/4q52NeGQZiLlYGd4Q/D9iuPGDafu/3/zZevvocrwraCDZgwoWd/QECwtbi4xD8QHxRS178xsPq2LmfKC/FlEBAUYfgDFORlZWCQ52FgUOP5zVCz9sjfiw/eKMENCAwMMeXl5XsMc8FPJhbOjv235A5fe8zoZWvLwMTIxPD45UsGPm5uBiVxQQZN7u8MnVtPXUN2gbGAgOAJpDBg/MrIKtCy/bLRsVtPmXi4uBj+/fn2+9vPvyycHJyMLgZaDAcvXPoFN8A/IMhIUEBoLUoIA+Ps4382qfotZ112nL3JVOyieyjdQYfXuGWtgbCgCOOnzx//IrvAgJ9fYDKWdMH4mYlduX/HOa0AHamD3Jyc5v5TtptzsrMzeBmrXWKcNGkS399/Pw8GBoTIA71QgSNhwaL7/9zjdzN6d10wdDdR/5XrbWbNOHvOjA18fHwmTo6ubECQQChlcnBzR5y9/yT4wcVTb1+/fW7DuGjR3EXR0QlfgMn16N+/fy8TMoCJiUkCiK0PHNqvduXSuTrGNWtWugcHh737+PHjHUKaYfL8/Pyip04dV7tw4dBhgnmBkKEUGwAAgK/XtUYSNDQAAAAASUVORK5CYII=") !important;\n\
		}\n\
		toolbar[iconsize="small"] %button%:hover {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACRElEQVQ4T2NkIBr8Z2RgYPyPrhwoSBj8//+fbfXt11phqqIXGRhRDSFoAFAzz8KLzzdvP3nZ+titFwWPe+OnIVsJN6BnSo88ww8GTmRJBRUV/jeSuvOOXL6nVeJuxBA3Z+cZWfY/M0x1BZc3+Pp+A6kFGzBxYm8T0GnFrKwsP2AGsHPyMH2RNebdfukxc6KLOYMAFzvDq3fvGC49fMFw+dGL/z9+/nQ7UBm+B2zAhIk9+3x9A2ylJKX/gfigkLr9jZHVt305Y4i9JQMbJy/Dn3//GbhZmRiEuVgYWP9+ZVh19MLfHz9/y0MMmNCz39cvwEJQQOgBzAU/mdg4m3dflTty7TGjkYYm2KmvP3xg4OLgYBDm42H48/09w/UnLy8hG2AuLCRyFCkMGL8ysAo0brtoeOzmEyZ2NjYGFsY/v7///sfCzMTCKCEiyvDo+dNfcAP8/AJNhYSEV6GEMCMj0BA2yaqNZ1x3nr/FlO+kfSTbSY/bqHmtAQ8PH+OPH9/+ohggKCjUhyVVMH5hYlfs3XFeO1BH8hAHB4d50NTt5pzs7AyuhioXGWfO7OD/9p35EDAQFcVExYuxJat///6BLWJiYvo/59jtjN5dF418zDV/ZbpZWDDOnTtzI7+AoLGDvSM3KytbFKF0ycHNHXnx/tPgW+dPvnn99qk948LF8+bFRMV/Aqa4Y9+/f79G0AAODjGgUywOHdivefHipUbGVetWOYUGhr778OEDPAoJGSIgICB87Ngh5bNnL54gmBcIGUaxAQAqY9puYCzN/wAAAABJRU5ErkJggg==") !important;\n\
		}\n\
		toolbar[iconsize="small"] %button%[disabled="true"] {\n\
			list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB70lEQVQ4T2NkoBAwEqu/vLzcjpOT81pDQ8MbZD1EGVBZWZn579+/qUxMTBXt7e1dGAbcv3+f4/2n9z6M//7zoLvo7NlzXh8+fPQTFxdnfwEEvPy8R+RlpWd4evruBakFu+DCpfNLONg4/NjZ2X4jG3D16jWup0+fsRsZGTGysLAwvH79muH9+/cMQHMY2NjY8jMzMyfBDNivrKhs+f8/wy+YAb9+/WJcs2YNj66uLgMvLy+Kw75//85w6dKl74yMjNZwAxQVlEz//f13D1nlgwcPBG/evCmloqLCBFQMth1oMwMfHx/Dx48f/z99+vQssgHGDP8ZjqCHwd27d+UfP36szs7ODvLGO2BAcgNdwCEhIcH46NGjt8gGGP3/938VtmgFBrIB0N8mcnJyB1VVVbkOHjxgzMnJxfT169cnCAPklQyApk/AlS6ePXumJSQk9ACoxuHKlStmQPonUG0e4+XLl8X//v29V0lJWQoYKaWEEtaXL1/SgX43AQbJWhMT01DGq9ev7ODm4tKWEJdi+/PnTxwhA4CpMfz161e+79+/e/f7919Pxtu3b85RUlJ5+////8PAwLlPyAAODg5BoPONXr16YfDmzbtWxseP79vLyCgAY+j9Q0KaYfJAVwgCA1DpzZs3p4nKC/gMptgAAO1G2FJifkXnAAAAAElFTkSuQmCC") !important;\n\
		}\n\
	}'

Добавлено 15-04-2023 14:40:46

:offtopic:
Ну и в догоyку сконвертил DownThemAll!, хотя много не тестил

Отредактировано Farby (15-04-2023 14:40:46)


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№1676015-04-2023 15:11:36

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 312
UA: Google 2.1

Re: Custom Buttons

:offtopic:

Farby пишет

Отредактировано Farby (Сегодня 14:40:46)

косяк форума ничего я не редактировал...


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№1676121-04-2023 22:27:41

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 112.0

Re: Custom Buttons

Как эмулировать нажатие клавиш, скажем Enter?

Отсутствует

 

№1676221-04-2023 23:30:23

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 505
UA: Firefox 102.0

Re: Custom Buttons

toxa, это было давно и, возможно, уже неправда. Но когда-то, это делалось так(там не Энтер, но найти код клавиши Enter и подставить, ежли работает код, думаю будет легко) №1929


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1676322-04-2023 00:13:19

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 112.0

Re: Custom Buttons

mokujin
Я из той ссылки скопировал функцию dblCtrlSend и попытался вызвать ее в консоли хотя бы в том виде как она есть.
Получаю ошибку Uncaught ReferenceError: data is not defined.


Когда то работал этот код

скрытый текст
var e = document.createEvent("KeyboardEvent");
e.initKeyboardEvent(
        "keydown", // event type : keydown, keyup, keypress
         true, // bubbles
         true, // cancelable
         window, // viewArg: should be window
         false, // ctrlKeyArg
         false, // altKeyArg
         false, // shiftKeyArg
         false, // metaKeyArg
         13, // Enter
         0 // charCodeArgs
);
document.dispatchEvent(e);

Но уже давно не работает.

Отсутствует

 

№1676422-04-2023 01:06:37

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 604
UA: Firefox 113.0

Re: Custom Buttons

toxa
Может как-то так:

Выделить код

Код:

addEventListener('keydown', e=> {
  if (e.keyCode == 13) {
    e.preventDefault();
    alert('Enter');
  }
});

«The Truth Is Out There»

Отсутствует

 

№1676522-04-2023 01:28:51

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 112.0

Re: Custom Buttons

unter_officer пишет

toxa
Может как-то так:

Выделить код

Код:

addEventListener('keydown', e=> {
  if (e.keyCode == 13) {
    e.preventDefault();
    alert('Enter');
  }
});

:) Так это ж обычный слушатель события keydown. А никакая не эмуляция нажатия клавиши.

Отсутствует

 

№1676622-04-2023 02:15:23

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 604
UA: Firefox 113.0

Re: Custom Buttons

toxa
Извиняюсь, невнимательно прочитал и поэтому неправильно понял. :blush:

Отредактировано unter_officer (22-04-2023 02:16:05)


«The Truth Is Out There»

Отсутствует

 

№1676722-04-2023 03:36:42

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1227
UA: Firefox 112.0

Re: Custom Buttons

toxa
Нынче, наверное, никак. Пару лет назад хотел сделать себе javascript, который на определённых сайтах посылал бы нужную комбинацию. Например, на https://www.livejournal.com/ развернуть все комментарии Ctrl + Alt + NumPad+. Не получилось. Как я понял, в [firefox] теперь блокировка на подобное, да и с функцией sendKeyEvent в javascript тоже не всё понятно. До 56-й включительно в [firefox] с этим проблем не было. Например, в расширении FireGestures нажатие F4 легко вызывалось жестом с прописанной командой FireGestures.sendKeyEvent({ keyCode: "DOM_VK_F4" });
"Send Combination-keystrokes using sendKeyEvent in a Mozilla/Firefox Extension" - вопрос без ответа.
Решения с CB-форума не работают. Но там предлагают решение с помощью nircmd sendkeypress, их не проверял. Может, Вам это пригодится.

Отсутствует

 

№1676822-04-2023 08:04:07

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

Re: Custom Buttons

Dumby

Выделить код

Код:

this.onclick = function(event) {
   if(event.button == 0) 
      var guid = "8iFmVtlyQC3O";
      PlacesUtils.bookmarks.fetch(guid, null, {includePath: true}).then(res => PlacesCommandHook.showPlacesOrganizer(["AllBookmarks", ...res.path.map(b => b.guid), guid]))
}

Можно ли сделать, чтобы при нажатии на любую папку на панели закладок она также открывалаь в библиотеке?

Отсутствует

 

№1676922-04-2023 14:28:18

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

Re: Custom Buttons

toxa пишет

Получаю ошибку Uncaught ReferenceError: data is not defined.

Уметь надо! :D
Казалось бы, скопировать функцию и вызвать,
она даже без аргументов...


Но если бы и получилось, то ничего ведь не увидишь,
разве что на Double Ctrl что-то видимое повешено.


Я вот поменял data на Win+D, запускаю с консоли,
и, вуаля, все окна свёрнуты, чистый рабочий стол.

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

Выделить код

Код:

// Win+D [Win-Down, D-Down, D-Up, Win-Up]
var data = [[0x5B, false], [0x44, false], [0x44, true], [0x5B, true]];

var e = document.createEvent("KeyboardEvent");
e.initKeyboardEvent(

уже давно не работает

Чем конструктор не угодил?


И что значит «не работает», не работает что?
Суть задачи не раскрыта совершенно.
Родить эвент и раздиспатчить на документе — это одно.


А «эмулировать нажатие клавиш» — это другое.
Особо не разгуляешься, но здесь больше подходит
nsIDOMWindowUtils.sendNativeKeyEvent()

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

Выделить код

Код:

windowUtils.sendNativeKeyEvent(
	0x00000409, // aNativeKeyboardLayout, US
	0x001c000d, // aNativeKeyCode, WIN_VK_RETURN
	0,          // aModifierFlags
	"",         // aCharacters
	""          // aUnmodifiedCharacters
);

momo2000 пишет

Можно ли сделать, чтобы при нажатии на любую папку на панели закладок она также открывалаь в библиотеке?

Я так понимаю, имеются в виду подпапки,
а не папки, которые непосредственно на панели закладок сидят.
Хотя, теоретически, их можно и с клавиатуры открывать.

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

Выделить код

Код:

(bar => {
	var map = b => b.guid;
	var ip = {includePath: true};

	var open = async node => {
		var ret = true, guid = PlacesUtils.getConcreteItemGuid(node);
		if (!guid) var ret = false, pn = node.parent,
			guid = pn.bookmarkGuid, ind = pn.getChildIndex(node);

		var res = await PlacesUtils.bookmarks.fetch(guid, null, ip);
		
		PlacesCommandHook.showPlacesOrganizer(
			["AllBookmarks", ...res.path.map(map), guid]
		);
		if (ret) return;

		var win = Services.wm.getMostRecentWindow("Places:Organizer") ||
			await new Promise(resolve => Services.obs.addObserver(function wfp(w, t) {
				Services.obs.removeObserver(wfp, t);
				resolve(w);
			}, "widget-first-paint"));

		var sel = win.document.getElementById("placesList").view.selection;
		sel.select(sel.currentIndex + ind + 1);
	}
	addEventListener("click", e =>
		!e.button && e.target.tagName == "menu" && open(e.target._placesNode)
	, false, bar || 1);

})(document.getElementById("PlacesToolbar"));

Отсутствует

 

№1677023-04-2023 21:56:28

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 112.0

Re: Custom Buttons

Dumby пишет

Чем конструктор не угодил?


И что значит «не работает», не работает что?
Суть задачи не раскрыта совершенно.
Родить эвент и раздиспатчить на документе — это одно.

Вот именно что событие, созданное через конструктор, вроде и есть, но оно не делает то что хотелось бы.
Думаю это потому, что у него свойство isTrusted == false


А эта штука - nsIDOMWindowUtils.sendNativeKeyEvent() - делает все. Еще бы разобраться как прописать там модификатор, что там надо вписать вместо нуля? И что значит последняя строчка UnmodifiedCharacters?

скрытый текст
windowUtils.sendNativeKeyEvent(
    0x00000409, // aNativeKeyboardLayout, US
    0x001c000d, // aNativeKeyCode, WIN_VK_RETURN
    0,          // aModifierFlags
    "",         // aCharacters
    ""          // aUnmodifiedCharacters
);

Отсутствует

 

№1677124-04-2023 10:07:28

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 112.0

Re: Custom Buttons

Dumby Посмотри пожалуйста как этот устаревший  код переделать можно

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

Выделить код

Код:

/////////////////////////////// Сохранить изображение кнопки custombutton ///////////////////////////////

this.saveImageURI = function saveImageURI(btn) {
 
  var remove = gBrowser.removeCurrentTab.bind(gBrowser);
    var promiseTargetFile = async (...args) => {
        var res = await window.promiseTargetFile(...args);
        setTimeout(remove, 0);
        return res;
    }
    var internalSave = eval(`(${window.internalSave})`);
    var save = eval(`(${window.saveDocument})`);
     
     var btn = custombuttons.popupNode;
  if (!btn) return;
  
  (saveButtonImage = btn => {
        if (btn.image != "") {
            var tab = gBrowser.selectedTab;
            gBrowser.selectedTab = gBrowser.addTab(btn.image, {
                triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
            });
            setTimeout(function() {
               window.content.document.title = btn.name;
               save(window.content.document);
            }, 2000);
        } else
            custombuttons.alertBox("Эта кнопка не имеет изображения!");
    })(btn);
 
}

Отсутствует

 

№1677224-04-2023 13:09:06

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

Re: Custom Buttons

toxa пишет

у него свойство isTrusted == false

Ну не знаю, мне alert(new KeyboardEvent("keydown").isTrusted); показывает true

Еще бы разобраться как прописать там модификатор, что там надо вписать вместо нуля?

Вписать обычный bitmap.
Сами флаги можно посмотреть, например, здесь.
Они там идут как раз перед sendNativeKeyEvent


Допустим, Ctrl+Shift+Delete
Запускаем код — выскакивает диалог «Удаление недавней истории».

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

Выделить код

Код:

windowUtils.sendNativeKeyEvent(
	0x00000409, // aNativeKeyboardLayout, US
	0xe053002e, // aNativeKeyCode, WIN_VK_DELETE

	// aModifierFlags
	// NATIVE_MODIFIER_CONTROL_LEFT | NATIVE_MODIFIER_SHIFT_LEFT
	0x00000400 | 0x00000100,

	"",         // aCharacters
	""          // aUnmodifiedCharacters
);

И что значит последняя строчка UnmodifiedCharacters?

Предположим, что гуглятина юзерагента настоящая, тогда ничего не значит.
Вот, что написано в nsIWidget.h (чуть отформатировал):

@param aCharacters
characters that the OS would decide to generate from the event.
On Windows, this is the charCode passed by WM_CHAR.


@param aUnmodifiedCharacters
characters that the OS would decide to generate from the event
if modifier keys (other than shift) were assumed inactive.
Needed on Mac, ignored on Windows.

Andrey_Krropotkin пишет

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

Как-то так, наверно

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

Выделить код

Код:

this.saveImageURI = function saveImageURI() {
	var gb = gBrowser;
	var remove = gb.removeCurrentTab.bind(gb);

	var promiseTargetFile = async (...args) => {
		var info = args[0].fileInfo;
		info.fileName = `${gb.selectedTab.label}.${info.fileExt}`;

		var res = await window.promiseTargetFile(...args);
		setTimeout(remove, 0);
		return res;
	}
	var internalSave = eval(`(${window.internalSave})`);
	var saveBrowser = eval(`(${window.saveBrowser})`);
	var save = (tab, name) => {
		(gb.selectedTab = tab).label = name;
		saveBrowser(tab.linkedBrowser);
	}
	(self.saveImageURI = () => {
		var btn = custombuttons.popupNode;
		if (!btn) return;
		if (btn.image == "") return custombuttons.alertBox("Эта кнопка не имеет изображения!");
		
		var tab = gb.selectedTab = gb.addTrustedTab(btn.image);
		setTimeout(save, 2e3, tab, btn.name || "image");
	})();
}

Отсутствует

 

№1677324-04-2023 19:16:27

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 112.0

Re: Custom Buttons

Farby спасибо , Dumby спасибо все работает

Отсутствует

 

№1677425-04-2023 00:24:49

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Chrome 112.0

Re: Custom Buttons

Dumby
Большое спасибо! :D

Отсутствует

 

№1677529-04-2023 22:09:49

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

Re: Custom Buttons

Не мог бы кто-нибудь написать код для открытия и закрытия боковой панели? Это могло бы стать эффектным жестом. Для дополнения для жестов.

Отредактировано vending_machine (30-04-2023 18:01:09)

Отсутствует

 

Board footer

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