Всем доброго времени суток!
Хотел поинтересоваться у знающих людей.
Есть ли кнопка,которая могла бы блокировать всплывающие окна?
Вот только не уверен правильно ли формулирую свой вопрос.Короче например есть сайт А на котором есть меню.При нажатии на пункты меню помимо перехода на нужную страницу перекидывает в новой вкладке на сайт B.
Может где есть кнопочка,которая бы могла блокировать переброс с сайта А на сайт В и закрывать вкладку.
Знаю,что есть множество расширений умеющих блокировать и всплывающие окна и межсайтовые запросы и рекламу и так далее.Пользуюсь ими но иногда бывают случаи,когда их требуется временно отключить.
А вот кнопочка с определёнными настройками ой как была бы кстати.
Заранее спасибо!
Отсутствует
oleg.sgh
Я понял, но подумал, мож, наиболее простой вариант подойдет. Можно, кстати, и индикатор прокрутки скрыть и сделать видимым только при наведении на позицию скролбара. Сответственно, навели, схватили и таскайте страницу вверх-вниз, как и хотели. А в остальное время, его как бы и нет.
А этот аддон тоже жестам мешает?
Как сделать, чтобы элемент с конкретным селектором, был всегда обведен рамкой?
Почему б просто не стилем:
:-moz-any(bla,bla-bla):before { content: '' !important; display: block !important; visibility: visible !important; position: absolute !important; top: 0!important; left: 0!important; width: 100%!important; height: 100%!important; background: none!important; outline: 2px dashed red !important; outline-offset: -2px!important; z-index: 2147483647!important; pointer-events: none!important; }
Т. е. как бы сделать видимыми границы прямоугольника getBoundingClientRect
выполнить в любом случае не выйдет.
Отредактировано turbot (16-04-2016 22:56:32)
Отсутствует
turbot
А этот аддон тоже жестам мешает?
Эти дополнения мешают даже не столько жестам сколько выделению и контекстному меню. В прокрутку нужно все равно целится В принципе, компромисс с журналом и прокруткой найден переносом ее влево, просто чем больше...наблюдаю использование кнопок тем сильнее вера в их всемогуществе...от того появилась хотелка Пробовал в кнопке задать постоянную высоту полосы но это влияет на стиль журнала. При первом запуски и при первом открытии журнала там чернота равная установленной длине прокрутки. Может потому что стиль не в стилиш а в юзер хром...В общем, привыкаю...
А вообще, такая кнопка могла бы быть самодостаточной и устраняющая...неприятности подобных дополнений. Впрочем, возможно, такая надобность, в небольшом перемещении страниц, возникла у меня, с моими увеличенными масштабами и скорости прокрутки почти в два раза...
Отсутствует
oleg.sgh
Эти дополнения мешают даже не столько жестам сколько выделению
Это - совершенно не мешает с
А контекстному, соответственно, тем более, если выставлено таскать страницу с лкм.
Единственный его минус, это что автор забил, похоже, и не собирается переделывать под многопроцессность. Ну и появившийся баг, когда не работает в новооткрытых окнах. Который также давно не исправляется.
Не знаю, что без него делать буду, когда совсем отвалится...
Отсутствует
turbot
Отсутствует
При правом клике на картинке в контекстном меню есть кнопка "открыть изображение" - ЛКМ и ПКМ открывает его в этом же окне, СКМ окрывает в новой вкладке но тут же переключается на нее. Помогите пожалуйста сделать что бы ПКМ открывал в фоновой вкладке (не переключаясь на нее).
Отсутствует
Stakhovsky
В любую кнопку, в инициализацию:
document.getElementById("context-viewimage").setAttribute("oncontextmenu", "event.preventDefault(); event.stopPropagation(); gBrowser.addTab( gContextMenu.mediaURL || gContextMenu.imageURL || gContextMenu.bgImageURL ); hidePopup();");
Отредактировано turbot (18-04-2016 04:43:35)
Отсутствует
Хотелось бы кнопку для поиска картинок с компьютера в гугл и яндекс картинках.
Устроит простой вариант: Раздельные кнопки . Нажал на кнопку - открылось окно выбора - выбор картинки - поиск пошел.
Идеальный вариант:
Одна кнопка с меню поисковиков по картинкам (Google, Яндекс, Tineye).
Нажал кнопку - открылось меню поисковиков - выбрал поиск - открылось окно выбора - выбор картинки - поиск пошел.
Очередность выбора поиска и окна выбора с компьютера не имеет значения...как удобнее для реализации.
В готовых кнопках подобного не...увидел.
Отсутствует
Ребят,черкните пару строчек кода для кнопки.Небольшую болваночку.Когда некий код срабатывает после открытия новой вкладки и загрузки страницы
Пример:
// Обработчик следит за переключением табов и запускают нужные коды и функции ................................ addEventListener("TabAttrModified", function(e) { var tab = e.target; var doc = tab.linkedBrowser.contentDocument; var uri = doc.URL; if ( tab.hasAttribute('read') ) setTimeout(function() { { tab.removeAttribute('unread') } }, 0) // автоматически меняем название таба для таба "Bookmarks tab" .... if ( uri == "chrome://browser/content/bookmarks/bookmarksPanel.xul") doc.title = "Закладки"; // автоматически очистить адресную строку для 'Bookmarks tab' .... if ( gBrowser.currentURI.spec == "chrome://browser/content/bookmarks/bookmarksPanel.xul") { gURLBar.value = ""; gURLBar.focus(); }; // стоп, если открыть другие владки в фоновом режиме .... if ( uri !== gBrowser.currentURI.spec ) return; // показываем иконки сайтов в адресной строке .... gProxyFavIcon.src = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/Portrait.png"; }, true, gBrowser.tabContainer );
Отсутствует
Пример:
// Обработчик следит за переключением табов и запускают нужные коды и функции ................................
Большое спасибо!
Кстати может ещё на один вопрос ответите?
А как найти на странице нужный элемент при помощи кнопки,например у которого есть только класс.
И как назначить этому элементу обработчик событий,например клик или маусап.
Отсутствует
rbfyec пишетКак сделать, чтобы элемент с конкретным селектором, был всегда обведен рамкой?
Почему б просто не стилем:
скрытый текстВыделить кодКод:
:-moz-any(bla,bla-bla):before { content: '' !important; display: block !important; visibility: visible !important; position: absolute !important; top: 0!important; left: 0!important; width: 100%!important; height: 100%!important; background: none!important; outline: 2px dashed red !important; outline-offset: -2px!important; z-index: 2147483647!important; pointer-events: none!important; }
turbot спасибо за помощь!
А у меня вопрос к bunda1
В своё время я сделал tooltip
И вот сейчас заметил, что в нём невозможно поменять font-size. Я через cssText могу изменить цвет, сделать шрифт наклонным, но изменить его размер - никак.
Даже если из cssText совсем убрать запись font-size - размер шрифта остаётся тот же.
Отсутствует
rbfyec
oleg.sgh
Пока хватило только на гугль:
var Cc = Components.classes; var Ci = Components.interfaces; function getFile() { var nsIFilePicker = Ci.nsIFilePicker; var fp = Cc['@mozilla.org/filepicker;1']. createInstance(nsIFilePicker); fp.init(window, gNavigatorBundle.getString("openFile"), nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterImages | nsIFilePicker.filterAll); if (fp.show() == nsIFilePicker.returnCancel) return; var localFile = Cc["@mozilla.org/file/local;1"] .createInstance(Ci.nsILocalFile); localFile.initWithPath(fp.file.path); return localFile; } function generateDataURI(aFile) { var contentType = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService) .getTypeFromFile(aFile); var inputStream = Cc["@mozilla.org/network/file-input-stream;1"] .createInstance(Ci.nsIFileInputStream); inputStream.init(aFile, 0x01, 0600, 0); var stream = Cc["@mozilla.org/binaryinputstream;1"] .createInstance(Ci.nsIBinaryInputStream); stream.setInputStream(inputStream); var encoded = btoa(stream.readBytes(stream.available())); return "data:" + contentType + ";base64," + encoded; } this.onclick = function(e) { if (e.button == 0) { var file = getFile(); if (!file) return; var dataURI = generateDataURI(file); var tab = gBrowser.loadOneTab("https://www.google.com/imghp?sbi=1", null, null, null, false); tab.addEventListener("load", function(){ content.document.forms[1].elements[0].value=dataURI; content.document.querySelector('#qbbtc .gbqfb').click(); tab.removeEventListener("load", arguments.callee, false); }, false) } }
Добавлено 18-04-2016 19:22:42
А как найти на странице нужный элемент при помощи кнопки,например у которого есть только класс.
Ну, например, с Document.querySelector() - Web APIs, как в этой кнопке. Смотрите остальное на MDN, я и сам не большой знаток.
Отредактировано turbot (18-04-2016 19:22:42)
Отсутствует
rbfyec
Полез в userChrome.css вставлять этот код и увидел, что оказывается я в своё время прописал там размер шрифта для этого конкретного tooltip-а. Прописал и забыл об этом.
Понятно, что все попытки изменить font-size были безуспешны.
Отсутствует
А как найти на странице нужный элемент при помощи кнопки,например у которого есть только класс.
И как назначить этому элементу обработчик событий,например клик или маусап.
Если нужен первый элемент с указанным классом + обработчик событий для клика:
[...gBrowser.contentDocument.querySelectorAll('[class^="email"]')][0].onclick =e=> { alert(e.target) };
Если нужны все элементы с указанным классом на всех страницах + обработчик событий для клика:
for ( var br of gBrowser.browsers ) { [...br.contentDocument.querySelectorAll('[class^="email"]')] .forEach((m)=>{ m.onclick =e=> { alert(m) } }); }
Отсутствует
[...document.querySelectorAll('[class^="email"]')].onclick =e=> { alert(m) };
Работает только вот так.А вот с классами нет.Видимо я чего то не понимаю.
content.document.getElementById("main").onclick =e=> {
alert("alert")
}
Отсутствует
Работает только вот так.А вот с классами нет.
Я ошибся, там нужно так:
[...content.document.querySelectorAll('[class^="email"]')][0].onclick =e=> { alert(e.target) };
или так:
[...content.document.getElementsByClassName('email')][0].onclick =e=> { alert(e.target) };
Добавлено 18-04-2016 21:39:05
content.document.getElementById("main").onclick =e=> {
alert("alert")
}
Вот только не у каждого элемента есть Id
Отредактировано bunda1 (18-04-2016 21:39:05)
Отсутствует
oleg.sgh
Не вышло. У Яндекса при попытке вставить в форму, для ссылки на изображение, dataURI и запустить поиск - либо вешает браузер, либо ошибку ssl-соединения выдает.
Tineye dataURI вовсе не принимает.
А на формах для выбора файла - click() почему-то не работает. Так вообще проще всего было бы - открыть сайт, кликнуть по форме, выбрать файл в проводнике. Без всякого конвертирования в base64.
В общем, я пас. Мож кто другой, разбирающийся, доделает это
this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); var menuPopup = self.appendChild(document.createElement("menupopup")); var Cc = Components.classes; var Ci = Components.interfaces; function getFile() { var nsIFilePicker = Ci.nsIFilePicker; var fp = Cc['@mozilla.org/filepicker;1']. createInstance(nsIFilePicker); fp.init(window, gNavigatorBundle.getString("openFile"), nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterImages | nsIFilePicker.filterAll); if (fp.show() == nsIFilePicker.returnCancel) return; var localFile = Cc["@mozilla.org/file/local;1"] .createInstance(Ci.nsILocalFile); localFile.initWithPath(fp.file.path); return localFile; }; function generateDataURI(aFile) { var contentType = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService) .getTypeFromFile(aFile); var inputStream = Cc["@mozilla.org/network/file-input-stream;1"] .createInstance(Ci.nsIFileInputStream); inputStream.init(aFile, 0x01, 0600, 0); var stream = Cc["@mozilla.org/binaryinputstream;1"] .createInstance(Ci.nsIBinaryInputStream); stream.setInputStream(inputStream); var encoded = btoa(stream.readBytes(stream.available())); return "data:" + contentType + ";base64," + encoded; }; this.searchInGoogle = function() { var file = getFile(); if (!file) return; var dataURI = generateDataURI(file); var tab = gBrowser.loadOneTab("https://www.google.com/imghp?sbi=1", null, null, null, false); tab.addEventListener("load", function(){ content.document.forms[1].elements[0].value = dataURI; content.document.forms[1].elements[1].click(); tab.removeEventListener("load", arguments.callee, false); }, false) }; this.searchInYandex = function() { var file = getFile(); if (!file) return; var dataURI = generateDataURI(file); var tab = gBrowser.loadOneTab("https://yandex.ru/images/", null, null, null, false); tab.addEventListener("load", function(){ content.document.forms[4].elements[0].value = dataURI; content.document.forms[4].elements[1].click(); tab.removeEventListener("load", arguments.callee, false); }, false) }; this.searchInTineye = function() { var file = getFile(); if (!file) return; var dataURI = generateDataURI(file); var tab = gBrowser.loadOneTab("https://tineye.com/search/", null, null, null, false); tab.addEventListener("load", function(){ content.document.forms[1].elements[0].value = dataURI; content.document.forms[1].elements[1].click(); tab.removeEventListener("load", arguments.callee, false); }, false) }; [ {label: "Искать картинку в Гугл", func: "searchInGoogle();"}, {label: "Искать картинку в Яндекс", func: "searchInYandex();"}, {label: "Искать картинку в Tineye", func: "searchInTineye();"} ].forEach(function(m) { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); mItem.setAttribute("oncommand", "document.getElementById('" + self.id + "')." + m.func + ""); menuPopup.appendChild(mItem); }); addDestructor(function() {menuPopup.parentNode.removeChild(menuPopup)});
Добавлено 19-04-2016 02:15:48
А, TinEye результаты поиска выдает типа https://tineye.com/search/SHA1-картинки/, можно было б подставлять, но я не знаю как в кнопке хеш файла получить.
Отредактировано turbot (19-04-2016 02:15:48)
Отсутствует
oleg.sgh
Понимаю, что не совсем то, но вдруг пригодится. Поиск в два этапа.
1. Открыть файл стандартной кнопкой
Отсутствует
xrun1
Кхм... Кнопка-то, для поиска из контекстного меню картинок, тоже есть, только что она пошлет в запросе, в качестве урл, на локальном файле?.. Мыслю, думаю, можно дальше не развивать?
Отсутствует
turbot
В общем, я пас. Мож кто другой, разбирающийся, доделает это
Буду наедятся. Спасибо.
xrun1
Можно попробовать соединить 2 этапа в один
Можно, но так
Сделать поиск в гугл и уже в нем на картинке или на миниатюре, если ничего не найдено, поиск из контекстного меню. Спасибо.
Отсутствует
turbot
Сразу не проверил на всех поисках, извиняюсь. Но в Google локальный файл ищет, остальные 2 неактивны - серые. А дальше, как сказал oleg.sgh, можно в найденном Google. Т.е. 3-й шаг в поиск добавляется. Неудобно, конечно, но хоть что-то.
Отсутствует
xrun1
Дык, гугл и в моей работает. Посмотрел, там тоже через загрузку страницы, вставку в форму, и клика сделано. Я, кстати, не обратил внимания, что вы про кнопку написали. Думал, аддон предлагаете еще ставить.
Отсутствует