Dumby пишетЯ внешним редактором не пользуюсь совсем …
Аналогично...
На пробу: custom_buttons-0.0.5.8.9-fixed6pre.xpi
Как-то коряво, но сойдет, переписывать не хочется. Бонусом должно было научиться в юникодные пути.
Как установить - это же не подписанная ?
Отсутствует
Infocatcher пишетнемного оживил DOM Inspector: dom_inspector-2.0.16-fixed.xpi
Предположительно снова сломали (пустые панели).
document.querySelector(":-moz-devtools-highlighted"); на 57.0b4 возвращает null,
а на 58.0a1 (2017-09-29) образует ошибку
SyntaxError: ':-moz-devtools-highlighted' is not a valid selectorВозможно как-то связано с этим.
Закомментировал соответствующую строку и панели появились,
и, вроде, даже Flasher работает.\inspector@mozilla.org\chrome\inspector\content\inspector\Flasher.jsВыделить кодКод:
function Flasher(aColor, aThickness, aDuration, aSpeed, aInvert) { //document.querySelector(HIGHLIGHTED_PSEUDO_CLASS);
(добавлено) Или, может, лучше такскрытый текстВыделить кодКод:
function Flasher(aColor, aThickness, aDuration, aSpeed, aInvert) { //document.querySelector(HIGHLIGHTED_PSEUDO_CLASS); try { document.querySelector(HIGHLIGHTED_PSEUDO_CLASS); } catch(ex) { if (ex.message != "'" + HIGHLIGHTED_PSEUDO_CLASS + "' is not a valid selector") throw ex; }
Упс, что-то я пропустил. И вчера сам чинил DOM Inspector, я себе странную распорку вкорячил:
try { document.querySelector(HIGHLIGHTED_PSEUDO_CLASS); } catch (e) { var ai = Components.classes["@mozilla.org/xre/app-info;1"] .getService(Components.interfaces.nsIXULAppInfo); if (ai.name != "Firefox" || parseFloat(ai.platformVersion) < 57) // addPseudoClassLock() still work in Firefox 57+ throw e; }
P.S. Насчёт этого, разреши тогда просто спросить,
загружаются ли в отдельные окна адреса вида
data:application/vnd.mozilla.xul+xml,… . Типа да или нет.
Это я еще тогда глянул, у себя я вижу
Remote XUL
This page uses an unsupported technology that is no longer available by default in Firefox.
Please contact the website owners to inform them of this problem.
(если растянуть окно, изначально его в минимальный размер ужимает)
Добавлено 11-10-2017 12:12:52
А ведь еще и создание закладок для кнопок отломали:
Error: Bookmarks.jsm: fetch: Invalid value for property 'url': "custombutton://
Отредактировано Infocatcher (11-10-2017 12:12:52)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Добавлено 11-10-2017 12:12:52
А ведь еще и создание закладок для кнопок отломали:Error: Bookmarks.jsm: fetch: Invalid value for property 'url': "custombutton://
Жуть какая, «счастливой отладки» и многословные валидаторы.
custombuttons.bookmarkButton() -> PlacesCommandHook.bookmarkLink() -> ... ->
function validateBookmarkObject(name, input, behavior) { return PlacesUtils.validateItemProperties(name, PlacesUtils.BOOKMARK_VALIDATORS, input, behavior); }
Firefox\omni.ja\modules\PlacesUtils.jsm
// Imposed to limit database size. const DB_URL_LENGTH_MAX = 65536; … /** * List of bookmark object validators, one per each known property. * Validators must throw if the property value is invalid and return a fixed up * version of the value, if needed. */ const BOOKMARK_VALIDATORS = Object.freeze({ guid: simpleValidateFunc(v => PlacesUtils.isValidGuid(v)), parentGuid: simpleValidateFunc(v => typeof(v) == "string" && /^[a-zA-Z0-9\-_]{12}$/.test(v)), index: simpleValidateFunc(v => Number.isInteger(v) && v >= PlacesUtils.bookmarks.DEFAULT_INDEX), dateAdded: simpleValidateFunc(v => v.constructor.name == "Date"), lastModified: simpleValidateFunc(v => v.constructor.name == "Date"), type: simpleValidateFunc(v => Number.isInteger(v) && [ PlacesUtils.bookmarks.TYPE_BOOKMARK, PlacesUtils.bookmarks.TYPE_FOLDER, PlacesUtils.bookmarks.TYPE_SEPARATOR ].includes(v)), title: v => { if (v === null) { return ""; } if (typeof(v) == "string") { return v.slice(0, DB_TITLE_LENGTH_MAX); } throw new Error("Invalid title"); }, url: v => { simpleValidateFunc(val => (typeof(val) == "string" && val.length <= DB_URL_LENGTH_MAX) || (val instanceof Ci.nsIURI && val.spec.length <= DB_URL_LENGTH_MAX) || (val instanceof URL && val.href.length <= DB_URL_LENGTH_MAX) ).call(this, v); if (typeof(v) === "string") return new URL(v); if (v instanceof Ci.nsIURI) return new URL(v.spec); return v; }, source: simpleValidateFunc(v => Number.isInteger(v) && Object.values(PlacesUtils.bookmarks.SOURCES).includes(v)), annos: simpleValidateFunc(v => Array.isArray(v) && v.length), keyword: simpleValidateFunc(v => (typeof(v) == "string") && v.length), charset: simpleValidateFunc(v => (typeof(v) == "string") && v.length), postData: simpleValidateFunc(v => (typeof(v) == "string") && v.length), tags: simpleValidateFunc(v => Array.isArray(v) && v.length), });
Добавлено 12-10-2017 09:49:05
Что-то у меня ностальгическое дежа вю времен IE6.
Отредактировано Infocatcher (12-10-2017 09:49:05)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
просьба исправить кнопку "Блокнот" - не работает
справка
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Notepad</title> <head> <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAApKSlRRkZGh0BAQHxBQUF+QUFBfkFBQX5BQUF+QEBAfEZGRogaGho1AAAAAAABAAECAgICAgICAgQEBAUAAAAAMTEwWeLi4f//////+vr6//r6+v/6+vr//Pz8//v7+//5+fn++/v7/7CwsPdNTU2hAQEBAgAAAAAAAAAAAwMDBAAAAABvbm+x8vHy/+Df4Pfi4+P76ubr++Lh4vvk5OT7/f39+/////v////77/Dv/aysrP8BEAElKngnxDCDLdEvgSzOLX8qy0GTPu1Zq1b/WatW/lasU/9op2f/xcPF/8PEw//i5+L/8vfx//H27//p6+n/qqqq/ESaQOS67a7/teip/rbpqv+36qv/suSm/6zfoP+s36D/teOo/4bNfP93s3b/39bf/9XY1f/5/Pj/+Pv2/+vs6/+qqar/T6RK8bvjsP6t2qT8sNym/LDcpvyx3af+st6o/7LeqP+w3ab/vuaz/1mqVP+2w7b/3dvd//D07//4+/f/6+zr/6qqqv8BNwFvndiU/8Djt/y34a//ueGw/7nhsP+54bD/ueGw/7jgr//B5Lj/mtSS/3q1ev/WzNb/4ufh//f79f/p6+n/qqqq/wAAAANHk0Pbzu/F/73gtP3A47f/wOO3/8Djt//A47f/wOO4/73itf/D5rn/Y7Je/7/MwP/k4eP/+f35/+vs6/+qqqr/AAAAAAAzAGap4KP/zebG+8Tkvv/G5b//xuS//8blv//F5b7/vuK2/8LkuP+U0Yv/ZaBl/97W3v/u9e3/6+3r/6qqqv8DAQMAAAAABE6XS+Db8dT/yuPD/czmxv/N5sf/zObG/8blv//A47j/t+Cu/7vjsP9nuWP/uMW5/+zr6//s7+z/qamq/wACAAQAAAAAATQBZrTir//a6dX70ufN/9Pozv/N5sf/xuS//8Djt/+44K//u+Ow/4zNgv9uqW7/6+Tr/+ru6v+qqar/AAAAAQMBAwAAAAAHVJhS2Or25v/W59L91OjP/8zmxv/G5b//wOO3/7rhsP+w3ab/tuSp/1isU/+vva//6+rq/6qqqv8AAAAAAQIBAwAAAAAENQRkv+S7/+Pr3vvR58z/zObG/8bkv/+/4rf/ueCw/7Hep/+z4Kf/h818/3Kucv/r4uv/qKqo/gAAAAAAAAABAwEDAAAAAApVl1TU7Pbo/9HlzP3P58j/xuS//8Ljuf+64bH/s9+p/6vcoP+t4KD/Wq5U/8bSx/23tLf9AAAAAAAAAAABAgEDAAAAAAk3CWaq36b/1unR+cLjvPzF5r78t+Cv/LXgrP2w36b8odmW/Kzgn/1yxGf7gLKA/52Sne0AAAAAAAAAAAAAAAECAQIAAAEADUOCQcdwt23/Zati82GrXvVjrWD4XKlY9FqpVvZaqlX3UqZN81OnTvxYbFndGxcbNAAAAAAAAAAAAAAAAAABAQEAAAAAFBAUHTAzMGcqKipRJSclUS8wL14nJyZNKCspVy4uLlsiJCJKNjU2aQQABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="type="image/x-icon"> </head> <TEXTAREA></TEXTAREA> <style> html { background-color: grey; overflow: hidden; } textarea { background: #383838; overflow-y: auto; width: 100%; height: 100%; border-radius: 2px; border: 2px inset white; color: white; } </style>
// Настройка функций кликов мыши для кнопки ........... this.onclick =e=> { if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab(notepad); // открыть блокнот if ( e.button == 1 ) { // запомнить текст из буфера обмена и скопировать текст на странице var clip = gClipboard.read(); window.content.focus(); goDoCommand("cmd_copy"); // открыть блокнот и вставить текст из буфера обмена var browser = gBrowser.getBrowserForTab(gBrowser.selectedTab = gBrowser.addTab(notepad)); browser.addEventListener("pageshow", function c(e) { this.removeEventListener(e.type, c); setTimeout(()=> { content.document.getElementsByTagName("textarea")[0].value = gClipboard.read(); clip && gClipboard.write(clip); // вернуть текст в буфер обмена }, 50); }); }; }; // Обновить блокнот в текущей вкладке после обновления кнопки ........... if ( gBrowser.currentURI.spec == notepad ) { var val = content.document.getElementsByTagName("textarea")[0].value; loadURI(notepad); setTimeout(()=> content.document.getElementsByTagName("textarea")[0].value = val, 500); }; // Очистить адресную строку в кладке блокнота ........... addEventListener("TabAttrModified", ()=> gBrowser.currentURI.spec == notepad && gURLBar.reset()); // Получаем адрес блокнота как base64 из вкладки Справка и добавляем иконку для вкладки блокнота ........... var notepad = "data:text/html;base64," + window.btoa(self.getAttribute('Help').replace('selfImage', self.image)); // Подсказка у кнопки ........... this.tooltipText = "Блокнот в вкладке \nЛ: Открыть блокнот \nС: Открыть блокнот с текстом( выделенным или из буфера ) \nП: CB меню";
Отсутствует
перестала работать кнопка BookmarksPanel (скрыть/показать панель закладок),поделитесь рабочим кодом? заранее спс)
p/s
обновил Custom Buttons и всё заработало)
Отредактировано foxnub (17-10-2017 12:30:33)
Отсутствует
Когда мы ищем что-то через findbar, то найденные фрагменты выделяются другим цветом и если надо от одного фрагмента к другому используются "кнопки" "вверх" и "вниз", то есть как назад и вперёд.
Можно ли создать СВ кнопку, чтобы добавляла возможность делать то же самое клавишами "вверх"/"вниз" на клавиатуре, когда фокус на findbarе, чтобы оставаться в рамках клавиатуры и не использовать мышку?
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Infocatcher
Спасибо за подтверждение, и за DOM Inspector, забрал.
Насчёт закладок на кнопки, у которых слишком длинный URL, наверно и раньше такое было.
Прошёлся по некоторым версиям, дошёл аж до Firefox 10.0
У меня везде либо ошибка, либо молча обрезает адрес (граница где-то FF 40/39).
когда фокус на findbarе, чтобы оставаться в рамках клавиатуры и не использовать мышку
Фокус на findbarе, вроде, не помеха для F3 и Shift+F3
Но если хочешь стрелками, то для стандартных findbar'ов,
которые ищут во вкладках, можешь попробовать, например, так
addEventListener("keypress", e => { if ( gFindBarInitialized && (e.key == "ArrowUp" || e.key == "ArrowDown") && !e.ctrlKey && !e.shiftKey && !e.altKey //&& !e.repeat && document.activeElement.closest("findbar") == gFindBar && gFindBar._findField.getAttribute("status") != "notfound" ) { e.stopPropagation(); gFindBar.onFindAgainCommand(e.key == "ArrowUp"); } }, true, gBrowser);
Отсутствует
difabor пишеткогда фокус на findbarе, чтобы оставаться в рамках клавиатуры и не использовать мышку
Фокус на findbarе, вроде, не помеха для F3 и Shift+F3
Но если хочешь стрелками, то для стандартных findbar'ов,
которые ищут во вкладках, можешь попробовать, например, такскрытый текстВыделить кодКод:
addEventListener("keypress", e => { if ( gFindBarInitialized && (e.key == "ArrowUp" || e.key == "ArrowDown") && !e.ctrlKey && !e.shiftKey && !e.altKey //&& !e.repeat && document.activeElement.closest("findbar") == gFindBar && gFindBar._findField.getAttribute("status") != "notfound" ) { e.stopPropagation(); gFindBar.onFindAgainCommand(e.key == "ArrowUp"); } }, true, gBrowser);
Спасибо большое! У меня какой-то комп наверное нестандартный. Он по F3 и Shift+F3 увеличивает громкость а по F2 - уменьшает её.
Я, наконец, выяснил, что у меня он перебирает найденные куски вперёд/назад по Fn+F3 и Fn+Shift+F3.
Я, если честно, вообще побаиваюсь эти F1-F12 клавиши - с тех пор, как однажды нечаянно таким образом отключил себе вайфай
Что интересно - эта Fn клавиша - какой-то фантом, ни кода её мне определить не удаётся - ничего...
Отредактировано difabor (15-10-2017 17:07:13)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
комп наверное нестандартный. Он по F3 и Shift+F3 увеличивает громкость
Ну, вроде, некоторые переключают, попробуй загуглить Fn Lock
ни кода её мне определить не удаётся - ничего...
MDN говорит, что Gecko не может,
Википедия говорит, что сама операционная система не знает,
так что не волнуйся, ты в хорошей компании.
Отсутствует
difabor пишеткомп наверное нестандартный. Он по F3 и Shift+F3 увеличивает громкость
Ну, вроде, некоторые переключают, попробуй загуглить Fn Lock
difabor пишетни кода её мне определить не удаётся - ничего...
MDN говорит, что Gecko не может,
Википедия говорит, что сама операционная система не знает,
так что не волнуйся, ты в хорошей компании.
Спасибо
Меня вообще-то устраивает и по Fn+F3/Fn+Shift+F3.
Дело в том, что у меня рефлексия на F1-F12 после того как нечаянно отключил себе вайфай
Насчёт Fn - жаль, очень жаль, у меня были на неё виды
Хотя, для этой цели и F1 сойдёт, но с Fn было бы изящнее.
-----------------------------------------------------------------------------------------------------------------
Пользуясь оказией, хотел бы спросить: не могли бы Вы посоветовать как сделать подобие Вашего VT, но чтоб это была очень узкая полоска (~5-8px), на которой бы ничего не размещалось, но чтоб она тоже могла прятаться и выскакивать как VT, но была бы горизонтальной - выскакивала бы, когда курсор приближался бы к верхней границе/краю экрана (в полноэкранном режиме) или верхнему обрезу/краю браузера в неполномасштабном...
У меня при наполеоновских планах очень куцая база собственных знаний
Отредактировано difabor (16-10-2017 00:08:47)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
difabor
В BIOS Setup есть настройка - как функциональные кнопки ведут себя по умолчанию.
Всегда настраиваю, чтобы вели себя как F1…F12, а не рулили громкостью, яркостью и т.д., т.к. «эфками» пользуюсь намного чаще.
Кстати, уже давно на ноутах WiFi/Bluetooth, выключенный через функциональные кнопки, можно включить через интерфейс ОС.
Отсутствует
difabor
В BIOS Setup есть настройка - как функциональные кнопки ведут себя по умолчанию.
Всегда настраиваю, чтобы вели себя как F1…F12, а не рулили громкостью, яркостью и т.д., т.к. «эфками» пользуюсь намного чаще.
Кстати, уже давно на ноутах WiFi/Bluetooth, выключенный через функциональные кнопки, можно включить через интерфейс ОС.
Спасибо!
А где можно почитать этот BIOS Setup?
Дело в том, что картинки на "эфках" не всегда мне понятны, а как будет себя вести какая-то "эфка" с Fn я вообще не знаю.
Насчёт WiFi/Bluetooth - проблема была не в том как его включить, а в моей элементарной тупости - ведь я даже и не знал, что это я его выключил - пропал WiFi - и всё...
Я тогда несколько дней на ушах стоял, затем поехал в магазин, где его купил - хотел в ремонт сдать (там у них и лаборатория имелась) - ведь я на полном серьёзе считал, что это у меня в компе вайфай накрылся, а не моя тупость и криворукость его выключила.
Слава богу, там мне его быстренько включили и объяснили что к чему, без ремонта и бесплатно. А то ведь я уже хотел длиннющий сетевой кабель покупать...
Но с тех пор у меня страх появился перед "эфками"
Ещё раз - спасибо!
P.S. Я погуглил про BIOS Setup - всё равно страшно... Особенно с моей криворукостью...
Отредактировано difabor (16-10-2017 15:47:31)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
difabor
Да там ничего страшного. В любом случае можно всегда выйти без сохранения изменений.
Отсутствует
Насчёт закладок на кнопки, у которых слишком длинный URL, наверно и раньше такое было.
Прошёлся по некоторым версиям, дошёл аж до Firefox 10.0
Похоже, совсем никто не пользовался... Ну да ладно, это не критично.
Что характерно, код странный, можно было не делать вообще ничего, задать только лимит в БД, само бы все подрезалось. А пользователю надо выводить сообщение, а не как сейчас.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Custom Buttons для новых версий:
[x] Исправлен внешний редактор.
[x] Попытка исправить двойную инициализацию в SeaMonkey (настройка extensions.custombuttons.preventDoubleInitialization).
С подписью: custom_buttons-0.0.5.8.9-fixed6-signed.xpi
Без подписи: custom_buttons-0.0.5.8.9-fixed6.xpi
+ http://custombuttons.sourceforge.net/fo … 573#p73573
Необходимы настройки:
extensions.allow-non-mpc-extensions = true
extensions.legacy.enabled = true
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
а какая разница какую версию ставить - с подписью или без?
Скажу как мне кажется, а Infocatcher, может, поправит или допoлнит.
Поскольку у них разный id, значит если какая-то версия CB уже установлена,
и если выбран вариант с противоположным состоянием подписанности,
то перед установкой новой версии следует удалить старую версию,
а затем устанавливать новую версию,
а если состояние подписанности совпадает с уже установленной,
то можно сразу установить поверх.
Отсутствует
Custom Buttons для новых версий:
[x] Исправлен внешний редактор.
[x] Попытка исправить двойную инициализацию в SeaMonkey (настройка extensions.custombuttons.preventDoubleInitialization).С подписью: custom_buttons-0.0.5.8.9-fixed6-signed.xpi
Без подписи: custom_buttons-0.0.5.8.9-fixed6.xpi
+ http://custombuttons.sourceforge.net/fo … 573#p73573Необходимы настройки:
extensions.allow-non-mpc-extensions = true
extensions.legacy.enabled = true
Это версия в 57 версию браузера?
Отсутствует
а какая разница какую версию ставить - с подписью или без?
Функционально они идентичны, без подписи – обновленная оригинальная версия, с подписью – с изменением идентификатора, с точки зрения Firefox это совсем другое расширение.
Так что вопрос сводится к другому: отключать проверку цифровых подписей или не отключать. Утверждается, что с подписями безопаснее, однако реальность такова, что подписать можно на основании автоматических проверок, которые легко обмануть.
Это версия в 57 версию браузера?
Да.
В Firefox 58.0a использовать подписанную или настройку xpinstall.signatures.required = false.
В Firefox 57.0b9 дополнительно необходима обновленная распорка.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Я так понимаю в релизе 57 дополнение так же сможет работать?
Вероятно, да, сможет. Шансы есть. Но при условии, что не поломают распорку, позволяющую обходить запрет установки, не удалят что-нибудь, крайне необходимое для работы самого расширения и не сделают еще чего-нибудь деструктивного.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
tom911 пишетЯ так понимаю в релизе 57 дополнение так же сможет работать?
Вероятно, да, сможет. Шансы есть. Но при условии, что не поломают распорку, позволяющую обходить запрет установки, не удалят что-нибудь, крайне необходимое для работы самого расширения и не сделают еще чего-нибудь деструктивного.
Спасибо за ваши труды и содержательный ответ! Надеюсь нас не лишат шанса.
Отредактировано tom911 (18-10-2017 22:34:40)
Отсутствует