Может ли кто-нибудь сделать кнопку отменяющую временные разрешения NoScript при смене или закрытии активной вкладки?
Мне подсказали (№583), что должно выполняться noscriptOverlay.revokeTemp()(сброс в config’е значения noscript.temp не всегда правильно срабатывает). Ещё нарыл в сниппетах:
Closing a tab
gBrowser.removeCurrentTab();
Changing active tab
gBrowser.tabContainer.advanceSelectedTab(1, true);
gBrowser.tabContainer.advanceSelectedTab(-1, true);
«Инструменты для создателей...» в очередной раз почитал. Не осилил.
Очень бы хорошо, чтобы кнопка работала в Симанке и Лисе. На носкриптовском форуме есть такой fаeature request, и ему почти джва года.
Отсутствует
Может ли кто-нибудь сделать кнопку отменяющую временные разрешения NoScript при смене или закрытии активной вкладки?
Мне подсказали (№583), что должно выполняться noscriptOverlay.revokeTemp()
addEventListener("TabSelect", function(e) { noscriptOverlay.revokeTemp(); }, true, gBrowser.tabContainer );
Отсутствует
Дорогие пользователи CB,
Мне интересно, все ли осознают что наше любимое дополнение, которое приносит нам столько удобств и радости в повседневной жизни, приговорено к смерти? Это официально и уже совсем не за горами! Все труды и усилия которые мы видим здесь в этой ветке - фактически обречены!
Уже через 1.5 - 2 года все наши знания, опыт и code snippets накопленные на форумах и в опубликованных дополнениях и CB кнопках превратятся в мало-кому-нужный хлам. Я считаю это преступным и недальновидным решением Мозилы.
Я вижу тут множество талантливых, любознательных, не боящихся трудностей людей, готовых взяться за трудоёмкие , часто мозголомные задачки или помочь ближним своим кто разбирается в программировании меньше чем они сами . Все это ради неуёмного желания сделать так, чтоб вещи работали так как нам хочется, чтобы браузер подстраивался под нас, под наши нужды , а не наоборот. Такое сообщество, как мне кажется, представляет наибольшую ценность из всего что связано с браузером Firefox.
И всего этого хотят нас лишить ради эфемерных целей обогащения вероломных корпораций под прикрытием заботы об иллюзорном "среднем пользователе", предпочитающем однокнопочный интерфейс и обладающем уровнем развития первоклассника.
Я считаю это несправедливым, и призываю наше сообщество объединиться и дать отпор! Для этого нужно всего лишь показать, что мы - вовсе не незначительная статистическая величина. Наш голос должен быть услышан! Сколько нас? Я думаю, что нас - тысячи и кроме того, наше сообщество не ограничено русскоязычными. Те, кто говорит по английски - пожалуйста присоединяйтесь к дискуссии здесь
Давайте координировать наши действия! Пожалуйста, делайте ваши предложения как нам показать сколько нас и быть услышанными!
Мои предложения:
1) Проголосовать на change.org
2) Голосовать и оставлять комментарии на webextensions.uservoice.com
Я предлагаю кликнуть Vote на следующие предложения: раз два три четыре пять шесть семь восемь
можно голосовать много раз используя разные email адреса (регистрация там не требуется, адрес не показывается и спам вам от этого не пойдёт)
или пишете там свои предложения
3) читающие/пишущие по англ. могут оставлять комментарии в блоге Мозиллы к записи о планах по уничтожению XUL
470 девелоперов и power юзеров уже категорически высказались что решение Мозиллы - безумие и суицид, добавьте и вы своё мнение
4) твитнуть/фейсбукнуть с тэгом #removeNoXUL
можно также твитить @mozilla или чуваку который объявил решение @deadsquid
результаты твитов можно смотреть здесь
Пожалуйста, потратьте несколько минут чтобы показать ваше мнение! Пожалуйста - расскажите всем небезразличным знакомым! Нам необходимо набрать как можно больше голосов в видных местах! Давайте покажем Мозиле пока еще не слишком поздно! Нас много и мы победим!
Если мы не сделаем усилие сегодня, ФФ как мы его знаем вылетит в трубу! Огромное количество человекочасов пойдёт в топку, а мы останемся без каких либо средст кастомизации браузера.
Отредактировано dddaaakkk (21-09-2015 05:20:11)
Отсутствует
Подскажите как тут надо сделать. Есть страница, на странице есть некий блок.
Я с помощью window.open() открываю новую вкладку, а в качестве document.body.innerHTML этой вкладки назначаю innerHTML того самого блока. Вроде все нормально отображается.
Но в том блоке были элементы с обработчиками онклик и другими, а функции для этих обработчиков прописаны в скрипте, который подгружается на оригинальную страницу таким способом
На новосозданной странице все эти обработчики не работают. Я пробовал подгрузить этот скрипт на новую страницу, т. е. прописать ссылку на скрипт в HEAD страницы - не работает.
Пробовал просто скопировать текст скрипта и вставить его между тегами <script> и </script> в тело страницы. Тоже не работает.
Есть способ внедрить активное содержимое в страницу, если она создана через innerHTML?
Отсутствует
Вот простейшая ситуация. Код:
tab = open('', ''); tab.document.body.innerHTML='<input type="button" value="button">'; tab.document.querySelector('input').onclick=function(){alert('hello')}
Открывается вкладка, в ней кнопка. Но когда кликаю по кнопке, происходит переход назад, на вкладку-родитель и уже там выскакивает алерт. Почему не в новой вкладке?
Ну и предыдущий вопрос тоже актуален. Как внедрить активное содержимое в страницу, если она создана через innerHTML?
Отсутствует
Подскажите, а есть кнопка для ff40 - отключить adobe flash для сайта навсегда, или наоборот - включить? Или просто, включить/выключить.
Отсутствует
Привет. Подскажите хто знает. Мне нужно передавать в консоль винды(а точнее в мой батнег) заголовок вкладки. Если вкладка на аглицком то нет проблем gBrowser.mCurrentTab.label; и норм. Дальше в батнике я беру его в переменную и использую как имя файла или имя папки если нужно.
// .... кусок , функция из кнопки кот-я запускает батнег с параметрами function wgetlist(){ var url = gContextMenu.linkURL; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\Soft\\wget\\wgetlist.cmd"); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, [url, gBrowser.mCurrentTab.label], 2); }
А если вкладка имеет название на руском, руский + аглийский. А есть еще тяжелые случаи рус. + англ + мова. Вот тут напр. http://www.ex.ua/93870997 Соотв. в консоль передаются "кракозяблы".
Как взять имя вкладки и сконвертнуть его в понятную для консоли кодировку при наличии рус || агл || др. в заголовке ?
Отсутствует
Может:
Отсутствует
Благодарю bunda1. Похоже никакой возоможности воттак просто помирить виндовую консоль с [CB] нету. Ну и лана, беру просто имя домена для имени папки и норм. В итоге сделал так:
// .... кусок , функция из кнопки кот-я запускает батнег с параметрами. function wgetlist(){ var url = gContextMenu.linkURL; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); var domn = content.document.domain; var title = encodeURIComponent(gBrowser.mCurrentTab.label); file.initWithPath(file.path + "\\Soft\\wget\\wgetlist.cmd"); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, [url, domn, title], 3); }
Третий парам (title) передаю просто шобыбыл, в батниге его не исп-ю. вдруг найду способ преобразования, на будущее.
Сам батнег такой, для скачки списка файлов через wget :
@echo off @set urla=%1 @set fnam=%2 @rem set fname="%fnam:~2,-2%" @set wgetdir=c:\0l0\WgetD\%DATE%\ @if not exist %wgetdir% md %wgetdir% @cd /d "%~dp0" "%~dp0wget.exe" -cN --content-disposition --restrict-file-names=nocontrol,windows -P %wgetdir%%fnam% -i %urla% if not errorlevel 0 pause else exit exit
Отсутствует
в 41-42b2 перестала работать эта кнопка
/*Initialization Code*/// CB drag and go, от 08.10.2014. ................................ function dragAndGo(e) { // стоп, если внутренне страницы или страница с файлами var protocol = content.location.protocol; if ( ["about:", "chrome:", "jar:", "data:", "file:"].indexOf( protocol ) !== -1 ) return; switch ( e.type ) { case "dragstart": self.startPoint = {x:e.screenX, y:e.screenY}; break; // получить начальные координаты перетаскивания case "dragover": Cc["@mozilla.org/widget/dragservice;1"].getService(Ci.nsIDragService).getCurrentSession().canDrop = true; break; case "drop": { // стоп, если перетаскивается в поле текстового ввода или из-за пределов окна браузера var name = e.target.localName; if ( !self.startPoint || ["text", "input", "textarea", "password"].indexOf( name ) !== -1 ) return; e.preventDefault(); // получить направление перетаскивания, L налево, R направо, U верх, D вниз var [subX, subY] = [e.screenX - self.startPoint.x, e.screenY - self.startPoint.y]; var [distX, distY] = [(subX > 0 ? subX : (-subX)), (subY > 0 ? subY : (-subY))]; var direction = distX > distY ? (subX < 0 ? "L" : "R") : (subY < 0 ? "U" : "D"); self.startPoint = 0; // стоп, если перетаскивается меньше минимального расстояния if ( distX > distY ? distX < 12 : distY < 12 ) return; // Ссылки .... if ( e.dataTransfer.types.contains("text/x-moz-url") ) { var link = e.dataTransfer.getData("text/x-moz-url").split("\n")[0]; if ( direction == "U" ) { // открыть ссылку в новой активной странице gBrowser.selectedTab = gBrowser.addTab( link ); return; } if ( direction == "D" ) { // открыть ссылку в новой фоновой странице gBrowser.addTab( link ); return; } if ( direction == "L" ) { // сохранить ссылку saveImageURL( link, "save", null, false, false, null, content.document); return; } if ( direction == "R" ) { // сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( link, 0, 0, 0, 1, null, content.document ); return; } } // Изображения .... if ( e.dataTransfer.types.contains("application/x-moz-file-promise-url") ) { var img = e.dataTransfer.getData("application/x-moz-file-promise-url").split("\n")[0] if ( direction == "U" ) { // открыть изображение в новой активной странице gBrowser.selectedTab = gBrowser.addTab( img ); return; } if ( direction == "D" ) { // открыть изображение в новой фоновой странице gBrowser.addTab( img ); return; } if ( direction == "L" ) { // сохранить изображение saveImageURL( img, "save", null, false, false, null, content.document); return; } if ( direction == "R" ) { // сохранить изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( img, 0, 0, 0, 1, null, content.document ); return; } } // Выделенный текст .... if ( e.dataTransfer.getData("text/unicode") ) { var sel = e.dataTransfer.getData("text/unicode"); if ( direction == "U" ) { // поиск текста в google в новой активной странице gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/search?q=" + sel ); return; } if ( direction == "D") { // поиск текста в google в новой фоновой странице gBrowser.addTab("http://www.google.com/search?q=" + escape( convertFromUnicode("UTF-8", sel )) ); return; } if ( direction == "L" ) { // открыть текстовые ссылки gBrowser.selectedTab = gBrowser.addTab( sel ); return; } if ( direction == "R" ) { // сохранить текст в .txt файл var fileTitle = content.document.title.slice(0, 50) + ' ' + (new Date()).toLocaleFormat("%H·%M·%S"); saveURL("data:text/plain," + encodeURIComponent( content.location + ("\r\n\r\n" + sel )), fileTitle + ".txt", null, false, false, null, content.document); } } } } }; ["dragstart", "dragover", "drop"].forEach(function(type) addEventListener(type, dragAndGo, false, gBrowser) ); // Подсказка кнопки ............................................................................ this.tooltipText = "CB drag and go \nЗапускает жести мыши для ЛКМ на странице \nЛ: Редактировать эту кнопку";
Отсутствует
можно исправить? Спасибо
Попробуй CB drag and go от 30.05.2015.
Отсутствует
Я сделал себе кнопочку, она работает и даже в консоли ошибок чисто.
Но когда я делаю закладку на эту кнопку, а потом закладку открываю, выскакивает сообщение, что кнопку установить невозможно, поскольку она содержит ошибки.
В консоли появляется запись типа
Ошибка: незакрытый раздел CDATA Источник: moz-nullprincipal:{cea83e26-a3d5-4a96-9e18-1f198b4d8829} Строка 655, символ 47 Исходный код: content.document.body.insertBefore(p
Сама строчка, на которую оно ругается, очень безобидная и там нет ничего, что могло бы вызвать ошибку. Что это за незакрытый раздел CDATA?
-------------------------------------
А вообще, когда я открываю закладку на ЛЮБУЮ кнопку и потом отменяю установку, или нажимаю "Редактировать",
в консоли ошибок появляется одна и та же запись:
Метка времени: ххххх Ошибка: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIWebNavigation.loadURI]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://global/content/bindings/browser.xml :: loadURIWithFlags :: line 156" data: no] Источник: chrome://browser/content/tabbrowser.xml Строка: 1402
В чём дело?
Отсутствует
Всем доброго времени суток, никто не подскажет с кодом для перехода на последнюю активную вкладку? То есть, например, просматривал я до этого страницы на вкладках с номерами 6,7, 10, 12, 4, 1,3, и именно в таком порядке, на 3(третьей) вкладке я нахожусь в данный момент, применяю код, и меня возвращает на 1ю вкладку, применяю снова и меня уже возвращает на 4ю, еще раз и уже на 12ю, и так далее. То есть получается эдакий ctrl-shift-tab только не в порядке физического расположения табов, а в порядке использования, что жутко удобно, когда вкладок открыто много(обожаю эту функцию еще со времен старой Оперы).
Пока что удалось нарыть вот такой код:
if ("tabFocusManager" in FireGestures == false) { // init tab focus manager FireGestures.tabFocusManager = { i: 0, _tabHistory: [], focusLastSelectedTab: function() { var currentPanel = gBrowser.mCurrentTab.getAttribute("linkedpanel"); for (i = this._tabHistory.length - 1; i > 0; i--) { var panel = this._tabHistory[i]; if (panel == currentPanel) continue; var tab = gBrowser.mTabContainer.getElementsByAttribute("linkedpanel", panel)[0]; if (!tab) continue; gBrowser.selectedTab = tab; break; } }, handleEvent: function(event) { this._tabHistory.push(event.target.getAttribute("linkedpanel")); if (this._tabHistory.length > 32) this._tabHistory.shift(); }, }; gBrowser.mTabContainer.addEventListener("TabSelect", FireGestures.tabFocusManager, false); gBrowser.mTabContainer.addEventListener("TabOpen", FireGestures.tabFocusManager, false); } FireGestures.tabFocusManager.focusLastSelectedTab();
Но это не оно, потому что на предыдущую активную вкладку оно переходит, а вот дальше снова возвращается на ту, с корой я начинал. Например, был я на вкладках 4,5,7(именно в таком порядке), сейчас на 7ой, применил код, меня вернуло на 5ю, так как это предыдущая активная вкладка, применил код еще раз и меня снова вернуло на 7ю вкладку, вместо того, что перекинуть на 4ю.
Заранее спасибо.
Отредактировано Sh1ro (26-09-2015 15:07:29)
Отсутствует
Как пользоваться полифиллами?
У меня 20, он не поддерживает метод closest(). Я нашёл для этого полифилл https://plainjs.com/javascript/traversi … lector-39/
Как я делаю. Запускаю скажем на этой странице код
this.Element && function(ElementPrototype) { ElementPrototype.closest = ElementPrototype.closest || function(selector) { var el = this; while (el.matches && !el.matches(selector)) el = el.parentNode; return el.matches ? el : null; } }(Element.prototype);
var el = content.document.querySelector('[src="http://ipic.su/img/img7/tn/kiss_101kb.1443207760.png"]'); alert(el.closest('div'));
И оно выдаёт ошибку el.closest is not a function
Почему полифилл не работает?
Отсутствует
Как в этих случаях
Применить transition, чтобы elm исчезал с замедлением?
Отсутствует
Всем доброго дня.
Ребята, напомните, пожалуйста, как менять вид кнопок при открытом-закрытом сайдбаре.
Или может у кого-нибудь есть готовые кнопочки для AiOS?
Отредактировано razoo (30-09-2015 08:48:38)
Отсутствует