Зачем сразу заменять? Можно же разместить [ссылку(?)]
чуть ниже, ну как "возможно подправленный вариант для ...".
Тем более если у тебя не работает.
Так разницы нет, старый код тоже с e10 не работал на FF55.
Отсутствует
Всё средствами CB
ЗАКРЫТЬ ВСЕ окна бравзера - полный выход \ Restart с сохран. вкладокВыделить кодКод:
// ЗАКРЫТЬ ВСЕ окна бравзера - полный выход \ Restart с сохран. вкладок // Будут закрыты все окна CB, инспекторы и проч. окна this.onclick = function(e) { switch (e.button) { case 0: goQuitApplication(); break; case 1: Application.restart(); // СКМ break; // case 2: // gShowPopup(this); // ПКМ // break; } }; this.tooltipText = "ЛКМ - Закрыть все окна (полный выход)\n\ СКМ - Перезагрузить бравзер\n\ ------------------------------\n\ ПКМ - Меню кнопки";
Все разобрался. Извиняюсь что тупил. Давно кнопки не ставил.
Отсутствует
А можно ли сделать такую вещь?
У меня по событию DOMContentLoaded функция перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик. Но когда я прокручиваю страницу вниз, подгружаются новые картинки, которых не было изначально.
Как бы сделать, чтобы они тоже получали обработчик онклик?
Отсутствует
А можно ли сделать такую вещь?
У меня по событию DOMContentLoaded функция перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик. Но когда я прокручиваю страницу вниз, подгружаются новые картинки, которых не было изначально.Как бы сделать, чтобы они тоже получали обработчик онклик?
Пример:
// Обработчик следит за загрузкой и переключением вкладки и запускают автовыделение ................. var listener = { onStateChange: function(wpr, req, flag) { if ( gBrowser.currentURI.spec == 'chrome://global/content/console.xul') return; if ( flag & Ci.nsIWebProgressListener.STATE_STOP ) Highlight("hits"); }, onLocationChange: function(wpr, req) { if ( wpr.currentURI.spec != "about:blank" && !req && wpr.document.readyState == "complete") Highlight("hits"); } }; gBrowser.addProgressListener( listener ); addDestructor(function() gBrowser.removeProgressListener( listener ) );
Отсутствует
bunda1
Это как я понял из кнопки Find или наподобие. А как приспособить этот код для моей цели?
Укажи вместо Highlight("hits"); функцию которая у тебя перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик.
Добавлено 03-09-2017 20:18:29
Нельзя ли выложить готовый сниппет?
Можно, но сложно. А что ты делаешь с изображениями на странице?
Отредактировано bunda1 (03-09-2017 20:18:29)
Отсутствует
sgretsch пишет: На 55 версии работает 0.0.5.8.9?. Может просто версия не пашет, поэтому все кнопки отвалились?intersk пишет: то же не работаетhttps://forum.mozilla-russia.org/viewto … 87&p=1Читаем главную шапку, и скачайте оттуда этот файл "custombuttons@xsms.org.xpi", кидаем его в папку "FF\Profile\extensions".
не нашел там файл "custombuttons@xsms.org.xpi"
переустановил custom_buttons-0.0.5.8.9-fixed4-signed, вроде заработали все кнопки кроме стоп/перезагрузка страницы
Отсутствует
переустановил custom_buttons-0.0.5.8.9-fixed4-signed, вроде заработали все кнопки кроме стоп/перезагрузка страницы
Отсутствует
А что ты делаешь с изображениями на странице?
Увеличиваю. А вернее, просто по клику открываю в оригинальном размере.
Те изображения, к которым я цепляю обработчик онклик - это превьюшки.
Отсутствует
bunda1 я пока сделал так
content.document.addEventListener('DOMNodeInserted', function(e){ if (e.target.nodeName=='IMG') e.target.onclick = function(){моя_Функция()}}, false)
Как подгружается на страницу новый элемент и если это картинка - то получает обработчик онклик.
Может можно что то упростить? А то код для меня выглядит громоздким.
Отредактировано hartumov (04-09-2017 13:13:33)
Отсутствует
Может можно что то упростить? А то код для меня выглядит громоздким.
Отсутствует
hartumov пишетМожет можно что то упростить? А то код для меня выглядит громоздким.
bunda1 сделал как написано, все работает. Спасибо!
Одно только обидно: выходит зря я весь этот свой код сочинял, раз это все делается так просто?
Отсутствует
уже обсуждалось - но как отключить показ системного меню кнопки по правому клику? (а то закрывает функциональное меню кнопки)
В инициализацию:
Отсутствует
Поправьте пожалуйста кнопку. В 52.3.0 ESR не работает.
В консоли пишет: ReferenceError: convertFromUnicode is not defined
// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 28.08.2016. ................ ((contextMenu, viewimage) => { var path = 'C:\\qwerty'; var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage); menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop()); addDestructor(()=> menuItem.remove()); addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); menuItem.onclick =()=> { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path }; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path)); saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir)); } })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));
«The Truth Is Out There»
Отсутствует
Поправьте пожалуйста кнопку. В 52.3.0 ESR не работает.
В консоли пишет: ReferenceError: convertFromUnicode is not defined
// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 25.09.2017. ................ ((contextMenu, viewimage) => { var path = 'C:\\qwerty'; var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage); menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop()); addDestructor(()=> menuItem.remove()); addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); menuItem.onclick =()=> { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path }; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path)); saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir)); }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));
Отсутствует
bunda1
Этот вариант работает, но в консоли всё-равно появляется ошибка, правда другая:
DEPRECATION WARNING: saveImageURL should be passed the private state of the containing window.
You may find more details about this deprecation at: https://bugzilla.mozilla.org/show_bug.cgi?id=1243643
chrome://global/content/contentAreaUtils.js 154 saveImageURL
chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button1@init line 1 > Function 68 anonymous/</menuItem.onclick
«The Truth Is Out There»
Отсутствует
bunda1
Этот вариант работает, но в консоли всё-равно появляется ошибка, правда другая:
// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 25.09.2017. ................ ((contextMenu, viewimage) => { var path = 'C:\\qwerty'; var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage); menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop()); addDestructor(()=> menuItem.remove()); addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); menuItem.onclick =()=> { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path }; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path)); save(); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir)); }; function save() { var func = eval( gContextMenu.saveMedia.toSource() .replace(/(false,\s+)false,/, "$1true,") .replace(/^s/, "0,function s") ); (save = () => func.call(gContextMenu))(); }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));
Отсутствует
bunda1
Этот вариант работает отлично. Огромное спасибо за помощь.
«The Truth Is Out There»
Отсутствует
Если выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?
Отсутствует
Если выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?
/* Toggle Links and Titles */ function TgLinks() { var links = window.content.document.getElementsByTagName("a"); for(var i = 0; i < links.length; i++) { var href = links[i].getAttribute('href'); if(href != null) { links[i].removeAttribute('href'); links[i].setAttribute('_href', href); } else { var href = links[i].getAttribute('_href'); if(href != null) { links[i].setAttribute('href', href); links[i].removeAttribute('_href'); } } } var imgs = window.content.document.getElementsByTagName("img"); for(var i = 0; i < imgs.length; i++) { var title = imgs[i].getAttribute('title'); if(title != null) { imgs[i].removeAttribute('title'); imgs[i].setAttribute('_title',title); } else { var title = imgs[i].getAttribute('_title'); if(title != null) { imgs[i].setAttribute('title', title); imgs[i].removeAttribute('_title'); } } } } addEventListener('keydown',function(e){ if (!e.ctrlKey && e.altKey && !e.shiftKey && (e.keyCode==76))TgLinks(); },0,gBrowser); this.onclick = function(e) { if ((e.button == 0)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) e.preventDefault(); if ((e.button == 1)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) TgLinks(); }
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Ki_rrrilll пишетЕсли выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?Переключение ссылок и ярлыковВыделить кодКод:
/* Toggle Links and Titles */ function TgLinks() { var links = window.content.document.getElementsByTagName("a"); for(var i = 0; i < links.length; i++) { var href = links[i].getAttribute('href'); if(href != null) { links[i].removeAttribute('href'); links[i].setAttribute('_href', href); } else { var href = links[i].getAttribute('_href'); if(href != null) { links[i].setAttribute('href', href); links[i].removeAttribute('_href'); } } } var imgs = window.content.document.getElementsByTagName("img"); for(var i = 0; i < imgs.length; i++) { var title = imgs[i].getAttribute('title'); if(title != null) { imgs[i].removeAttribute('title'); imgs[i].setAttribute('_title',title); } else { var title = imgs[i].getAttribute('_title'); if(title != null) { imgs[i].setAttribute('title', title); imgs[i].removeAttribute('_title'); } } } } addEventListener('keydown',function(e){ if (!e.ctrlKey && e.altKey && !e.shiftKey && (e.keyCode==76))TgLinks(); },0,gBrowser); this.onclick = function(e) { if ((e.button == 0)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) e.preventDefault(); if ((e.button == 1)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) TgLinks(); }
Была кнопка "Переключение ссылок".
Она включала/отключала ссылки по нажатию на неё СКМ или по Alt-L
Я туда добавил включение/отключение ярлыков картинок (атрибут "alt" называется почему-то title а не alt
Короче, сейчас этот код включает/выключает сразу и ссылки и ярлыки картинок - по СКМ или Alt-L
Причём я убедился, что ярлык (скрытая подпись картинки - alt="что-то там") при наведении курсора пропадает.
Но при копировании это не пропадает, увы...
Это не совсем то. alt это alt, а title - это title. Это разные атрибуты. Всплывающая подсказка - это тайтл. А альт мы видим на месте картинки если она по какой либо причине не загрузилась.
Ваш код удаляет тайтл, поэтому всплывающая подсказка пропадает. Но код не удаляет альт и поэтому альт есть в скопированном тексте.
Но спасибо за идею! Ведь ничто не мешает таким же макаром удалять и альт. Что я и сделал - удаляю у всех картинок альт, выделяю все, копирую, а потом возвращаю все альты на место.
Отредактировано Ki_rrrilll (08-09-2017 04:34:38)
Отсутствует