>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]Поиск изображения в google из контекстного меню http://forum.mozilla-russia.org/viewtopic.php?id=57905 |
bunda1 > 29-01-2013 19:38:22 |
Поиск изображения в google из контекстного меню изображений (Firefox) Выделить код Код:// Поиск изображения в google из контекстного меню, от 02.06.2019. .................. (()=> { var copyimage = document.getElementById("context-copyimage-contents"); var contextMenu = copyimage.parentNode; var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), copyimage); menuitem.setAttribute("label", "Поиск изображения в google"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "https://www.google.lv/favicon.ico"); menuitem.onclick =e=> { gBrowser.selectedTab = gBrowser.addTab("https://www.google.com/searchbyimage?image_url=" + encodeURIComponent(gContextMenu.imageURL), { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()}) }; addEventListener("popupshowing", ()=> menuitem.hidden = copyimage.hidden, true, contextMenu); addDestructor(()=> menuitem.remove()); })(); Добавить подменю "Поиск изображения в ..." в контекстном меню изображений (Firefox) Выделить код Код:// Добавить подменю "Поиск изображения в" в контекстном меню изображений, от 02.06.2019. ............. (()=> { var copyimage = document.getElementById("context-copyimage-contents"); var contextMenu = copyimage.parentNode; var array = [ ['Google', 'https://www.google.lv/favicon.ico', 'https://www.google.com/searchbyimage?&image_url='], ['Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url='], ['Bing', 'https://www.bing.com/s/a/bing_p.ico', 'http://www.bing.com/images/searchbyimage?FORM=IRSBIQ&cbir=sbi&imgurl='], ['Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url='], ]; var menu = contextMenu.insertBefore(document.createElement("menu"), copyimage); menu.setAttribute("label", "Поиск изображения в ..."); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", array[0][1]); menu.onclick =e=> { e.target.nodeName == 'menu' && search(array[0][2]); setTimeout(()=> contextMenu.hidePopup(), 20) }; addEventListener("popupshowing", ()=> menu.hidden = copyimage.hidden, true, contextMenu); addDestructor(()=> menuitem.remove()); var menuPopup = menu.appendChild(document.createElement("menupopup")); array.forEach(m=> { var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.onclick =()=> search(m[2]); }); var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", 'Искать во всех поисковиках'); mItem.onclick =()=> { array.forEach(m=> { search(m[2]) }) }; function search(finder) { gBrowser.selectedTab = gBrowser.addTab(finder + encodeURIComponent(gContextMenu.imageURL), { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()}); }; })(); |
Alfina > 31-01-2013 20:53:57 |
bunda1, спасибо огромное за кнопку! Давно о такой мечтала, чтобы аналогичное расширение заменить. А вы можете ещё сделать иконку Гугла для этого пункта в меню? |
bunda1 > 31-01-2013 21:35:54 |
Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений с иконкой Можно загружать иконку с интернета: Выделить код Код:// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений(с иконкой) ........................... (function() { if ( document.getElementById("image-search") ) return; var menuItem = document.createElement("menuitem"); menuItem.id = "image-search"; menuItem.setAttribute("label", "Поиск изображения в google"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "http://www.canalcorredores.com/modulos/mod_periodico/pub/iconos/google.gif"); menuItem.setAttribute("oncommand", "getBrowser().selectedTab = getBrowser().addTab('http://www.google.com/searchbyimage?image_url=' + encodeURIComponent( gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL ) )"); document.getElementById("context-viewimage").parentNode.insertBefore( menuItem, document.getElementById("context-viewimage") ); document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { menuItem.hidden = !gContextMenu.onImage; }, false); })(); или иконка как base64:: Выделить код Код:// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений(с иконкой) ........................... (function() { if ( document.getElementById("image-search") ) return; var menuItem = document.createElement("menuitem"); menuItem.id = "image-search"; menuItem.setAttribute("label", "Поиск изображения в google"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBKBMpTCYX4GMrH/9gMxn/YDQV/2cyG/9nLxr/YjMd/10xHv9cMRz/XjIa/2ExHP9gNRn/YDIV/2IwHf9ULSL/RCcU4EEoEylLKBfgcjUe/349IP98QRr/gEEd/39AKP+FUjv/h2NL/4lkUP+GYEv/hVQ+/35CJv9+Phz/gEIb/4c8H/96PCT/azgb/0koFOBpMyT/jD8i/4RFIf97RB3/hEUr/7GCdf/q29L/+e3e/97HuP/dwLD/6M2+/76VhP9+RSr/hUMg/5NAH/+NQCX/h0Ai/2Q1Iv9yOyf/lkYn/4xFJP+HSSn/m25Y//7y6v/bw7f/fkw2/3hBJv90QSX/hFI9/+nUxv+2k4H/i0kq/5VIJP+QRiL/lkYn/3Q5Kv9zQSn/mUkp/5tJKf+XSin/roJr//757f+0gG//l0oq/5NMI/+WTCH/i00u/8q0o//jx7j/mFU6/5JMJP+TTiL/l0wl/3Y/K/93Rif/oE4p/6ZNK/+jTSz/pGpS//rn2v/Np5b/kFEx/5BSK/+XTyv/nmFJ/+rTyP/lyrv/nlk+/5NRJv+WUib/l1Ik/3lFK/+BSyr/plQt/6ZULP+mUyv/nFIz/6d3Yf/hxrX/3b6n/7SUf/+7l4b/8NjL//7z6//BkoH/mlMz/55TLP+iUyv/olMp/4FJK/+FSzP/qVUz/61ZMf+sWSv/rFYs/59TM/+cWT//nmJJ/8OSgf/+8ub/+O/b/8ikkv+iVTb/qVgv/6pVMP+1WDT/qVY1/4ZMMf+MUTX/q1sx/7RZMf+2WjH/t1wv/7JbLf+oXDT/nVtD/8yajv/+8uf/ybGZ/5VYOP+zWDL/t1sx/7NYMv+5WjX/sFk2/49SM/+VVDn/s143/7hfNP+8WzX/v141/6xeMv/ZoYD/+9/I/+DBtP/Ss6P/7L+l/7l1Tf+1XjT/vlw0/7tdM/+6YC//tV42/5FYNP+cU0D/uGE9/75fNf/GZTb/wGI4/8OBYv//5tT/5byr/6RjSP+lXD//26eM//TNsf+3YkH/xGI3/8NjNf+7Yi//uGE3/5pZOv+hWEH/wGY9/8RlNP/KaDf/xWY3/9+ef///5tv/v4Vt/8NmOv+9ZUD/xI16//7o2v/FgGX/x2g5/8poNv/KaDb/xWU5/6ZYQv+mYUH/y2s7/8xwN//TbTf/0m46/+CYd///59X/vIJk/81tOv/Bbz//4a6b//7n2P/FiGL/yWw4/9FtN//KcDf/zG45/6dfQP+tZT//1W4//9pxPf/VbTz/1G5B/75wTf/31L7/z56C/8V5TP/TkGP/+NXC//XSv/+4cEr/0nA7/9VwO//Ubz7/1G88/61kP/+0bkj/4XNC/99wPv/gckL/321B/9VwR//Gf2D/6reX/+/DoP/82br//uHO//LSvv/mp33/3nhJ/9dwQv/bb0X/23BG/7RrSP+wb0r/4nhK/+V3Rf/qeEX/8HZE/+lzQf/adUf/yWg+/7lfO/+tYDz/qWFA/6xeOf/IaTn/5nND/+h1SP/pdkj/3ndN/7RtUP+NWTrg2oJX/+uGVf/ofkv/84FN/++ETv/qfk//6n5Q/+h+Uv/ngFP/5oFS/+d/UP/nfk//839O/+5+Tv/uhVj/3YFa/5JYPOCRVkEppFo64NN8UP/dgVT/3oRR/92DTP/ihVj/34FX/+ODVf/mg1T/5IRO/96ET//cglH/4YJT/+CCVv/Te1D/oVk44JBVQCkAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE="); menuItem.setAttribute("oncommand", "getBrowser().selectedTab = getBrowser().addTab('http://www.google.com/searchbyimage?image_url=' + encodeURIComponent( gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL ) )"); document.getElementById("context-viewimage").parentNode.insertBefore( menuItem, document.getElementById("context-viewimage") ); document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { menuItem.hidden = !gContextMenu.onImage; }, false); })(); После замены кода нужен рестарт. |
Alfina > 31-01-2013 22:19:16 |
Спасибо огромное! Теперь это идеальная кнопка! |
feas > 01-04-2013 21:48:45 |
Хм. У меня при поиске(иконки в UA) посылает сюда: А можно сделать регедикт сюда(это снизу той же страницы): 01-04-2013 21:50:37 И можно её перенести вниз? |
Confidence > 01-04-2013 23:11:06 |
Попробовал код вставить в Stylish - не работает. Жаль. ) |
feas > 01-04-2013 23:15:02 |
Confidence пишет
Тут кнопки а не стили вставлять(создать) надо |
Confidence > 01-04-2013 23:37:27 |
Да понял я. Так уж, решил попробовать. )) |
Mishania > 04-04-2014 15:25:35 |
Не работает в 28.0 Перекидывает на главную гугла и всё. скрытый текст Жму на картинке ПКМ и выбираю "поиск изображения в google" |
feas > 04-04-2014 17:17:51 |
Mishania пишет
пробуй этот скрипт http://userscripts.org/scripts/source/139231.user.js |
Mishania > 04-04-2014 17:30:12 |
feas |
bunda1 > 04-04-2014 19:00:20 |
feas пишет
Выделить код Код:// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений ......................... (function() { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Поиск изображения в google"); menuitem.setAttribute("oncommand", "gBrowser.selectedTab = gBrowser.addTab('http://www.google.com/searchbyimage?image_url=' + encodeURIComponent( gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL ) )"); var contextMenu = document.getElementById("contentAreaContextMenu"); var sep= document.getElementById("context-sep-copyimage"); contextMenu.insertBefore( menuitem, sep ); addEventListener("popupshowing", function() { menuitem.hidden = !gContextMenu.onImage }, false, contextMenu ); addDestructor(function() { contextMenu.removeChild( menuitem ) }); })(); Насчёт других вопросов я не понял Mishania пишет
У меня работает даже на наверно конфликт с другим расширением. |
villi311 > 06-04-2014 23:05:50 |
Отличная вешь! Спасибо огромное! У меня все в 28 работает. |
toltec > 01-10-2014 17:01:12 |
bunda1, а возможно расширить кнопку до аналога расширения https://addons.mozilla.org/en-US/firefo … s/?src=api? Т.е. добавить Тинай и Яндекс |
bunda1 > 01-10-2014 22:07:31 |
toltec пишет
Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 01.10.2014 ............. (function() { var contextMenu = document.getElementById("contentAreaContextMenu"); var menu = document.createElement("menu"); menu.setAttribute("label", "Поиск изображения в ..."); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", function() menu.hidden = !gContextMenu.onImage, false, contextMenu ); addDestructor(function() contextMenu.removeChild(menu) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); addEventListener("command", function(e) { gBrowser.selectedTab = gBrowser.addTab( e.target.finder + encodeURIComponent(gContextMenu.imageURL) ); }, false, menu ); })(); |
toltec > 02-10-2014 11:14:17 |
Отлично, спасибо |
Kamui > 18-05-2015 11:47:01 |
bunda1 |
bunda1 > 18-05-2015 21:34:22 |
Kamui пишет
Выделить код Код:// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений ................................ ((contextMenu) => { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Поиск изображения в google"); menuitem.onclick =e=> { var url = 'http://www.google.com/searchbyimage?image_url=' + encodeURIComponent(gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : loadURI(url); } contextMenu.insertBefore(menuitem, document.getElementById("context-viewimage")); addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onImage, false, contextMenu); addDestructor(()=> contextMenu.removeChild(menuitem) ); })(document.getElementById("contentAreaContextMenu") ); |
Kamui > 19-05-2015 07:11:38 |
bunda1 |
bunda1 > 19-05-2015 18:50:46 |
Kamui пишет
Выделить код Код:// Добавить новый пункт "Поиск изображения в google" в контекстном меню изображений ................................ ((contextMenu) => { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Поиск изображения в google"); menuitem.onclick =e=> { var url = 'http://www.google.com/searchbyimage?image_url=' + encodeURIComponent(gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : loadURI(url); contextMenu.hidePopup(); } contextMenu.insertBefore(menuitem, document.getElementById("context-viewimage")); addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onImage, false, contextMenu); addDestructor(()=> contextMenu.removeChild(menuitem) ); })(document.getElementById("contentAreaContextMenu") );
. |
Kamui > 20-05-2015 18:50:50 |
bunda1 пишет
Старый код открывал также. Группа вкладок на скриншоте это 4 первые вкладки с красным фоном: Скорее всего надо расширение отредактировать чтобы оно обрабатывало gBrowser.addTab и создавало группу при этом событии, т.к. не только в этой кнопке вкладка открывается вне группы, так например в кнопке Translate при включённой опции "Перевод страницы в новой вкладке сразу справа", также открывается вкладка вне группы. Кстати как называется событие открытия ссылки? |
bunda1 > 20-05-2015 20:17:39 |
Kamui
Нет, надо вместо gBrowser.addTab использовать что другое, наверно:
Насчёт событие не знаю, но клик на ссылку запускает вот такую цепочку внутренних функций Firefox: |
Kamui > 21-05-2015 09:10:13 |
bunda1 |
bunda1 > 21-05-2015 18:55:42 |
Kamui Выделить код Код:e.button ? openLinkIn(url, "tabshifted", {relatedToCurrent: true, inBackground: true, referrerURI: makeURI(content.location.href)}) : loadURI(url); 21-05-2015 19:04:57 Выделить код Код:cbu.getPrefs("Translate.nextPage") ? openLinkIn(url, "tabshifted", {relatedToCurrent: true, inBackground: true, referrerURI: makeURI(content.location.href)}) : loadURI(url); |
Kamui > 22-05-2015 05:38:30 |
bunda1 |
emlen > 04-06-2015 17:28:46 |
Поможите плиз с проблемкой https://forum.mozilla-russia.org/viewtopic.php?id=67530 |
Kamui > 04-06-2015 19:56:41 |
bunda1 Еще попытался в кнопку отсюда добавить обработку кликов СКМ, прошу посмотреть и может что-то дополнить. Хотелось бы чтобы поиск по СКМ открывался в фоновой вкладке. Или ЛКМ в фоновой, а СКМ в активной новой вкладке, т.к. поиск в текущей странице редко используется, поэтому ЛКМ можно открывать поиск в фоновой, а текущую просто закрыть при необходиости. скрытый текст Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 01.10.2014 ............. (function() { var contextMenu = document.getElementById("contentAreaContextMenu"); var menu = document.createElement("menu"); menu.setAttribute("label", "Поиск изображения в ..."); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", function() menu.hidden = !gContextMenu.onImage, false, contextMenu ); addDestructor(function() contextMenu.removeChild(menu) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url= e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : loadURI(url); setTimeout(function() { document.getElementById("contentAreaContextMenu").hidePopup() }, 20); }; })(); 04-06-2015 20:03:27 скрытый текст Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 01.10.2014 ............. (function() { var contextMenu = document.getElementById("contentAreaContextMenu"); var menu = document.createElement("menu"); menu.setAttribute("label", "Search Image In ..."); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", function() menu.hidden = !gContextMenu.onImage, false, contextMenu ); addDestructor(function() contextMenu.removeChild(menu) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url= e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : gBrowser.addTab(url); setTimeout(function() { document.getElementById("contentAreaContextMenu").hidePopup() }, 20); }; })(); |
bunda1 > 04-06-2015 21:09:09 |
Kamui пишет
Всё отлично |
Kamui > 04-06-2015 22:08:16 |
bunda1 пишет
Благодарю меня только смущает: Выделить код Код:setTimeout(function() { document.getElementById("contentAreaContextMenu").hidePopup() }, 20); Как-то изящней это можно сделать? |
bunda1 > 04-06-2015 22:18:58 |
Kamui пишет
04-06-2015 22:21:07 Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 01.10.2014 ............. ((contextMenu) => { var menu = document.createElement("menu"); menu.setAttribute("label", "Search Image In ..."); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onImage, false, contextMenu); addDestructor(()=> contextMenu.removeChild(menuitem) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url = e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : gBrowser.addTab(url); setTimeout(()=> contextMenu.hidePopup(), 20); }; })(document.getElementById("contentAreaContextMenu") ); |
Kamui > 05-06-2015 06:49:46 |
bunda1 скрытый текст // Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 01.10.2014 ............. ((contextMenu) => { var menu = document.createElement("menu"); menu.setAttribute("label", "Search Image In ..."); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", ()=> menu addDestructor(()=> contextMenu.removeChild(menuitem) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url = e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : gBrowser.addTab(url); setTimeout(()=> contextMenu.hidePopup(), 20); }; })(document.getElementById("contentAreaContextMenu") ); иначе пункт меню появлялся везде. Еще хотел добавить к этому пункту иконку, пробовал так: скрытый текст Выделить код Код:menu.setAttribute("class", "menuitem-iconic"); menu.setAttribute("image", "https://www.google.lv/favicon.ico"); но ничего не получилось, как это можно сделать? |
bunda1 > 05-06-2015 07:23:36 |
Kamui 05-06-2015 07:25:04 |
Kamui > 05-06-2015 07:25:43 |
bunda1 пишет
Точно, а то я и смотрю что старый пункт не исчезает при редактировании кнопки И с иконкой разобрался, спасибо |
emlen > 05-06-2015 14:00:28 |
конечный вариант скиньте плиз, если не сложно |
bunda1 > 05-06-2015 23:15:40 |
emlen пишет
Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 05.06.2015. ............. ((contextMenu) => { var menu = document.createElement("menu"); menu.setAttribute("label", "Search Image In ..."); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", "https://www.google.lv/favicon.ico"); contextMenu.insertBefore( menu, document.getElementById("context-viewimage") ); addEventListener("popupshowing", ()=> menu.hidden = !gContextMenu.onImage, false, contextMenu); addDestructor(()=> contextMenu.removeChild(menu) ); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url=' ], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url=' ], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url=' ] ]; var menuPopup = menu.appendChild( document.createElement("menupopup") ); array.forEach(function( m ) { var mItem = menuPopup.appendChild( document.createElement("menuitem") ); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url = e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : gBrowser.addTab(url); setTimeout(()=> contextMenu.hidePopup(), 20); }; })(document.getElementById("contentAreaContextMenu") ); |
bunda1 > 06-06-2015 17:36:10 |
Да пусть знают, не жалко. А насчёт сконвертить в png или gif чтоб меньше были спасыбо, не знал что так менше. |
emlen > 06-06-2015 23:18:41 |
кажет все время гуглоиконку, а можно как-то сохранять и показывать к примеру иконку последней выбранной системы.. хотя не критично, может и вовсе там иконка не нуна) |
adidharma > 07-06-2015 07:38:51 |
okkamas_knife пишет
Официальная бесплатная версия и так портативна - IcoFX 1.6.4 Free Portable Edition. Правда с оф. сайта её убрали , но в интернетах найти можно. okkamas_knife пишет
Для этого хорошо использовать GIMP (я предпочитаю старую версию 2.4.6 portable - меньше по размеру и удобней в управлении, чем новые, имхо) - допустим, есть исходник в виде 8-ми битной (256 цветов) иконки - открываем её в GIMP, сохраняем как 4-х битную (16 цветов, не знаю как GIMP это делает, но качество останется не намного хуже, чем при 256 цветах) - далее сохраняем изменённую иконку, как gif. В итоге значок 16х16 весит всего 216 байт: p.s. Если пользоваться Total Commander, то к нему есть удобные плагины: ICO wcx и ICONew для вытаскивания отдельных иконок из .ico, ICLView - получить исходник иконки в png или bmp (но лучше для этого юзать nconvert), ICLRead - можно выдирать иконки из dll или exe (временно добавив к ним расширение .icl). Также весьма удобен упомянутый nconvert совместно с TC, для конвертации иконок/изображений в разные форматы, например: пользовательская команда: Выделить код Код:[em_ncgif128] button=%COMMANDER_PATH%\Icons\etcbar.dll,598 cmd=cmd /c ""%COMMANDER_PATH%\Scripts\ncgif128.bat" param=%S" menu=Конвертировать изображение(я) в gif 7-bit iconic=1 ncgif128.bat: Выделить код Код:@echo off :loop if -%1==- cls && goto :EOF "%COMMANDER_PATH%\Bin\XnView\nconvert.exe" -out gif -colors 128 -D %1 shift goto loop |
Northtech > 07-06-2015 12:30:43 |
А для уменьшения размеров картинок можно использовать https://github.com/lorents17/iCatalyst https://github.com/lorents17/iCatalyst/ … ADME.RU.md |
Garider > 05-09-2015 15:30:28 |
У меня почему-то двоится в контекстном меню: Как исправить? Mozilla Firefox for Linux Mint (40.0.3). Создавал новую кнопку и использовал конечный вариант кода из поста №35 на этой странице. =============================================================================== И само как-то исправилось! Теперь как надо. Чудеса! |
Ultima2m > 05-09-2015 20:13:44 |
bunda1 |
bunda1 > 05-09-2015 20:44:56 |
Ultima2m пишет
Замени: на |
Ultima2m > 05-09-2015 20:58:37 |
bunda1 Спасибо, все ОК |
Garider > 05-09-2015 23:35:05 |
bunda1 |
bunda1 > 06-09-2015 00:09:23 |
Garider пишет
Наверно ты установил у себя два кода №35 Выделить код Код:// Добавить подменю "Поиск изображения в ..." в контекстном меню изображений, от 05.09.2015. ............. ((contextMenu, viewimage)=> { var menu = contextMenu.insertBefore(document.createElement("menu"), viewimage); menu.setAttribute("label", "Поиск изображения в ..."); menu.setAttribute("class", "menu-iconic"); menu.setAttribute("image", "https://www.google.lv/favicon.ico"); addEventListener("popupshowing", ()=> menu.hidden = viewimage.hidden, true, contextMenu); addDestructor(()=> contextMenu.removeChild(menu)); var array = [ [ 'Google', 'https://www.google.lv/favicon.ico', 'http://www.google.com/searchbyimage?image_url='], [ 'Bing', 'https://www.bing.com/s/a/bing_p.ico', 'http://www.bing.com/images/searchbyimage?FORM=IRSBIQ&cbir=sbi&imgurl='], [ 'Tineye', 'http://tineye.com/favicon.ico', 'http://tineye.com/search?pluginver=bookmark_1.0&url='], [ 'Яндекс', 'http://yastatic.net/morda-logo/i/favicon_islands.ico', 'http://yandex.ru/images/search?rpt=imageview&img_url='] ]; var menuPopup = menu.appendChild(document.createElement("menupopup")); array.forEach((m)=> { var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.setAttribute("image", m[1]); mItem.setAttribute("class", "menuitem-iconic"); mItem.finder = m[2]; }); menuPopup.onclick =e=> { var url = e.target.finder + encodeURIComponent(gContextMenu.imageURL); e.button ? gBrowser.addTab(url) : gBrowser.selectedTab = gBrowser.addTab(url); setTimeout(()=> contextMenu.hidePopup(), 20); }; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimage")); |
Garider > 06-09-2015 12:00:45 |
bunda1 пишет
Нет, я код первым делом проверил. Если добавить или перенести кнопку в другое место, то двоения нет. |
emlen > 18-12-2015 11:06:02 |
Извините немного оффтопика, но просто тут по теме упоминали редакторы изображений, а есть что-то оффлайновое, чтобы принимало изображение в формате base64? |
oleg.sgh > 18-12-2015 11:54:49 |
emlen |
emlen > 18-12-2015 12:19:50 |
oleg.sgh, извините меня за твердолобость, но как это позволит мне изменить тональность иконки, которая у меня на руках в base64? |
oleg.sgh > 18-12-2015 12:31:57 |
emlen |
emlen > 18-12-2015 13:05:18 |
oleg.sgh, а где звучал такой вопрос? |
oleg.sgh > 18-12-2015 13:07:42 |
emlen |
bunda1 > 18-12-2015 13:17:35 |
emlen |
emlen > 18-12-2015 13:34:14 |
bunda1 пишет
да, из исходного base64 в данном случае, в другой ветке я поднимал вопрос про сохранение изображения для пересылки в том же telegram... а тут весь интерес полноценно юзать base64, чтобы и туды и обратно прозрачно конвертило... oleg.sgh пишет
А Вы меня извините за занудство |
bunda1 > 18-12-2015 13:49:33 |
А зачем именно base64? |
emlen > 18-12-2015 15:58:40 |
bunda1 пишет
Ибо уже на него все завязано в кастом баттонзе.. удобно.. |
emlen > 18-12-2015 22:13:43 |
Как -то не закончен вариант с этими поисками, почему бы их не объединить, тот что поиск выделенного на странице текста делает с выбором поисковика из меню с сабжем, плюс прикрутить к этому всему загрузку картинки из файла - вот была бы чудесная кнопка... Я сегодня генератор идей)) |
bunda1 > 03-06-2019 19:10:08 |
Исправил Поиск изображения в google из контекстного меню изображений и Добавить подменю "Поиск изображения в ..." в контекстном меню изображений для FF64+ |
Ultima2m > 04-06-2019 08:32:01 |
bunda1 пишет
Спасибо, в Waterfox 56 тоже работает. |