Ki_rrrilll пишет:
difabor пишет:
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. Это разные атрибуты. Всплывающая подсказка - это тайтл. А альт мы видим на месте картинки если она по какой либо причине не загрузилась.
Ваш код удаляет тайтл, поэтому всплывающая подсказка пропадает. Но код не удаляет альт и поэтому альт есть в скопированном тексте.
Но спасибо за идею!Ведь ничто не мешает таким же макаром удалять и альт. Что я и сделал - удаляю у всех картинок альт, выделяю все, копирую, а потом возвращаю все альты на место.
Первое, чем я занялся - это пытался удалить alt
Ничего не получалось И тогда я взялся выяснять (по View Page Source) на какой атрибут откликается то, что в кавычках после alt="....")
На src="..." - давал УРЛ, на width= давал ширину и т.д. а на alt - ничего не давал или null
Просто перебором дошёл до title...
То есть вначале вместо title у меня был alt. Но это не помогало
Не смогли бы Вы привести Ваш код - я бы посмотрел где была моя ошибка...
P.S. Я немного затупил
Добавил удаление alt - удаляет . Так что код приводить не надо. Видать, я просто проверял не то
Вообщем, общими усилиями разобрались. А что? получилась полезная кнопка
Отредактировано difabor (08-09-2017 09:33:04)
Отсутствует
не работает Allow copy/context menu, поправьте пожалуйста
(для сайта freshdoc.ru)
Отредактировано intersk (08-09-2017 11:45:12)
Отсутствует
Здравствуйте.
Что нужно дописать к этим кодам:
// Закрыть все вкладки [...gBrowser.tabs].forEach((tab)=> gBrowser.removeTab(tab)); // Закрыть вкладки слева gBrowser.visibleTabs.forEach((tab)=> tab._tPos < TabContextMenu.contextTab._tPos && gBrowser.removeTab(tab));
чтобы при закрытии вкладок появлялость подобное сообщение:
Отсутствует
unter_officer пишет:
Здравствуйте.
Что нужно дописать к этим кодам:Выделить кодКод:
// Закрыть все вкладки [...gBrowser.tabs].forEach((tab)=> gBrowser.removeTab(tab)); // Закрыть вкладки слева gBrowser.visibleTabs.forEach((tab)=> tab._tPos < TabContextMenu.contextTab._tPos && gBrowser.removeTab(tab));чтобы при закрытии вкладок появлялость подобное сообщение:
http://redload.ru/images/confirmati.png
// Закрыть все вкладки custombuttons.confirmBox(null, "Закрыть все " + [...gBrowser.tabs].length + " вкладки?", "Да", "Отмена") && [...gBrowser.tabs].forEach((tab)=> gBrowser.removeTab(tab)); // Закрыть вкладки слева custombuttons.confirmBox(null, "Закрыть " + [...gBrowser.tabs].length + " вкладки слева?", "Да", "Отмена") && gBrowser.visibleTabs.forEach((tab)=> tab._tPos < TabContextMenu.contextTab._tPos && gBrowser.removeTab(tab));
Отсутствует
bunda1
Спасибо за помощь.
Отсутствует
"кнопка-время" стало показывать время с отставанием на три часа
может дело в этой кнопке?
/*Initialization Code*/
// ВКЛ / ВЫКЛ js на странице + разрешить выделение
// Результат появляется сразу без перезагрузки.
const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
var uri = makeURI("data:text/css," + encodeURIComponent( "*{ -moz-user-select: text !important;}" ));
// Для текущей вкладки:
gBrowser.docShell.allowJavascript = !gBrowser.docShell.allowJavascript;
// или глобально:
// gBrowser.mPrefs.setBoolPref("javascript.enabled", !gBrowser.mPrefs.getBoolPref("javascript.enabled"));
if ( sss.sheetRegistered(uri, sss.AGENT_SHEET) ) sss.unregisterSheet(uri, sss.AGENT_SHEET);
else
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
Отредактировано intersk (13-09-2017 09:31:45)
Отсутствует
intersk пишет:
"кнопка-время" стало показывать время с отставанием на три часа
может дело в этой кнопке?
Нет. Но в чём проблема я не знаю, может у тебя что с системными часами.
Отсутствует
Кому надоело отключать FindBar, кликая на красный "Х" или нажимая Esc, ниже приводится примитивнейший код, включающий/выключающий FindBar по Ctrl-F, без установки значений в about:config
var FndBarOn = false; function TgFindBar(e) {if (FndBarOn) {e.preventDefault();e.stopPropagation();gFindBar.close()} FndBarOn =! FndBarOn} addEventListener('keydown',function(e){if (e.ctrlKey &&!e.altKey && !e.shiftKey && (e.keyCode==70)) TgFindBar(e)},0,window);
Базируется на том, что по умолчанию Ctrl-F включает FindBar.
Кроме того предполагается, что после рестарта FindBar закрыт. Переменная, отслеживающая состояние FindBarа (FndBarOn) не запоминается в about:config и никаких следов этот код там не оставляет.
Просто я привык по Ctrl-F и включать и выключать FindBar, но кнопки и аддоны делавшие это то ли куда-то пропали, то ли я не могу их найти работающими.
Вот и написал этот примитивный код. Может кому-то и пригодится.
Отсутствует
difabor
а это, чито, не робит в новых FF ? Вот такое поведение должно быть у панели поиска , я уверен и странно что до сих пор это не так.
Автоскрытие панели поиска
//(auto-hide Findbar) Клик на странице - скроет панель поиска (function(e) { this.clickPage = function(event) {gBrowser.addEventListener('mousedown',on, false); }; function go() { clickPage(event); gFindBar.close(); } function on() { gBrowser.removeEventListener('mousedown',on, false); timeoutId = setTimeout(go, 1000) } function off() { clickPage(event); clearTimeout(timeoutId) } gFindBar.addEventListener('click',off, false); clickPage(event); })();
Отсутствует
mokujin пишет:
difabor
а это, чито, не робит в новых FF ? Вот такое поведение должно быть у панели поиска , я уверен и странно что до сих пор это не так.
Автоскрытие панели поискаскрытый текстВыделить кодКод:
//(auto-hide Findbar) Клик на странице - скроет панель поиска (function(e) { this.clickPage = function(event) {gBrowser.addEventListener('mousedown',on, false); }; function go() { clickPage(event); gFindBar.close(); } function on() { gBrowser.removeEventListener('mousedown',on, false); timeoutId = setTimeout(go, 1000) } function off() { clickPage(event); clearTimeout(timeoutId) } gFindBar.addEventListener('click',off, false); clickPage(event); })();
Дело в том, что с автоскрытием мне было не очень удобно. Может не привык, может ещё по какой-то причине - уже не упомню...
А Ctrl-F как-то роднее
Отсутствует
Здравствуйте! Подскажите, как с помощью СВ и можно ли, извлечь из реестра и поместить в константу ЗНАЧЕНИЕ параметра? Например: HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\11.0\Installer параметр: InstallDate ЗНАЧЕНИЕ: 04.12.2016
Отредактировано dedfor (16-09-2017 20:37:58)
Отсутствует
difabor пишет:
Кому надоело отключать FindBar, кликая на красный "Х" или нажимая Esc, ниже приводится примитивнейший код, включающий/выключающий FindBar по Ctrl-F, без установки значений в about:config
Выделить кодКод:
var FndBarOn = false; function TgFindBar(e) {if (FndBarOn) {e.preventDefault();e.stopPropagation();gFindBar.close()} FndBarOn =! FndBarOn} addEventListener('keydown',function(e){if (e.ctrlKey &&!e.altKey && !e.shiftKey && (e.keyCode==70)) TgFindBar(e)},0,window);Бази...
То что надо, спасибо! Только код вроде с ошибками? у меня цвет кнопки меняеться, если с кодом что-то не так.
П.С все работает как надо.
Отредактировано Gladius333 (16-09-2017 23:46:36)
Отсутствует
Gladius333 пишет:
Только код вроде с ошибками? у меня цвет кнопки меняеться, если с кодом что-то не так.
addEventListener('keydown', e=> { if ( (e.ctrlKey) && (!e.altKey) && (!e.shiftKey) && (e.keyCode == 70) ) { e.preventDefault(); gFindBar.hidden ? gFindBar.open() : gFindBar.close(); } });
Отсутствует
bunda1 пишет:
Gladius333 пишет:
Только код вроде с ошибками? у меня цвет кнопки меняеться, если с кодом что-то не так.
Выделить кодКод:
addEventListener('keydown', e=> { if ( (e.ctrlKey) && (!e.altKey) && (!e.shiftKey) && (e.keyCode == 70) ) { e.preventDefault(); gFindBar.hidden ? gFindBar.open() : gFindBar.close(); } });
Уважаемый bunda1,
предложенный Вами код тоже включает/отключает findbar, но при включении курсор на нём не фокусируется.
А в предложенном мною коде - фокусируется.
Я чуть-чуть модифицировал Ваш код и теперь и в Вашем коде курсор фокусируется:
addEventListener('keydown', e=> { if (e.ctrlKey && !e.altKey && !e.shiftKey && (e.keyCode == 70) && !gFindBar.hidden) {e.preventDefault(); gFindBar.close();} });
Дело в том, что не надо делать gFindBar.open() вообще (имхо) - пусть он по умолчанию открывается Файрфоксом - Файрфокс фокусирует курсор
Отредактировано difabor (17-09-2017 15:29:28)
Отсутствует
bunda1 пишет:
intersk пишет: "кнопка-время" стало показывать время с отставанием на три часаможет дело в этой кнопке?Нет. Но в чём проблема я не знаю, может у тебя что с системными часами.
системные часы показывают правильное время
Отсутствует
intersk пишет:
системные часы показывают правильное время
Если выставлено privacy.resistFingerprinting = true, все функции про время будут вести себя, как будто часовой пояс UTC+0. Что самое интересное, для расширений и самого браузера – тоже переправляет...
Отсутствует
Вопрос по поводу скроллинга.
Я обнаружил аддон BMW - Broken Mouse Wheel 0.0.2, который делает вертикальный скроллинг движением мышки при нажатой Ctrl.
Сам код оказался до предела маленьким:
var height = document.documentElement.scrollHeight; function scroll(event){ var y = event.clientY; var yPercentage = y/screen.height; //ctrlKey is subject to change as more features will be added if (event.ctrlKey) window.scrollTo(0,yPercentage*height); } window.onmousemove = scroll;
и у меня возникло желание перевести его в СВ (чтобы затем добавить и горизонтальный скроллинг).
Но оказалось, что в СВ этот код работать не хочет. Никак...
На mousemove реагирует (я добавлял в функцию scroll алерты - они прекрасно срабатывают, а скроллинг - ни в какую.
Почему - не ясно. Аддон BMW делает, а тот же код в СВ - нет
Я также обнаружил, что даже BMW не на всех сайтах может скроллить, напр. на addons.mozilla.org (на mozilla.org он скроллит).
Кто-то может объяснить этот феномен?
Правда, там есть какой-то mozilla.rsa файл с какими-то иероглифами - неужели это он всё определяет?
Вообще-то изначально я хотел добавить горизонтальный скролл туда же по аналогии с вертикальным:
var height = document.documentElement.scrollHeight; var width = document.documentElement.scrollWidth; function scroll(event){ var y = event.clientY; var yPercentage = y/screen.height; var x = event.clientX; var xPercentage = x/screen.width; //ctrlKey is subject to change as more features will be added if (event.ctrlKey) window.scrollTo(xPercentage*width,yPercentage*height); } window.onmousemove = scroll;
Отредактировано difabor (19-09-2017 09:21:12)
Отсутствует
bunda1 пишет:
intersk пишет: системные часы показывают правильное времяНу тогда не знаю. У меня Часы работает нормально на FF55.
Infocatcher пишет:
intersk пишет: системные часы показывают правильное времяЕсли выставлено privacy.resistFingerprinting = true, все функции про время будут вести себя, как будто часовой пояс UTC+0. Что самое интересное, для расширений и самого браузера – тоже переправляет...
изменил в конфиге и даже ставил кнопку по ссылке бунды1 - время отстает на 3 часа
Отредактировано intersk (19-09-2017 09:24:30)
Отсутствует
difabor пишет:
алерты - они прекрасно срабатывают
Тогда вот тебе ещё один
напр. на addons.mozilla.org
Это же WebExtensions. Они на АМО и не должны работать.
Infocatcher пишет:
Если выставлено privacy.resistFingerprinting
Ух ты, даже рестарт не нужен!
Двойной клик по настройке в about:config, и часы сразу перепрыгивают.
intersk пишет:
время отстает на 3 часа
Ну так подведи сколько надо, типа d.setHours(d.getHours() + 3);
Отсутствует
Dumby пишет:
difabor пишет:
алерты - они прекрасно срабатывают
Тогда вот тебе ещё один
скрытый текстнапр. на addons.mozilla.org
Это же WebExtensions. Они на АМО и не должны работать.
Уважаемый Dumby,
у меня этот alert([document.location.href, window.location.href].join("\n")); выдаёт:
chrome://browser/content/browser.xul
chrome://browser/content/browser.xul
и location.href и просто location - тоже...
Видите ли, Dumby, наши уровни просто несоизмеримы, и то, что Вам очевидно и ясно - для меня могут быть дебрями
Но огромнейшее спасибо! Когда я вместо window.scrollTo(0,yPercentage*height) сделал content.scrollTo(0,yPercentage*height); у меня задвигалось
Но почему в BMW оно скроллает по window.scrollTo(0,yPercentage*height) всё равно не пойму...
Конечно, цель (скроллить через СВ) - достигнута, но как я был тупицей, так и остался...
Отсутствует
Dumby пишет:
Про ночнушку трудно что-то определённое сказать.
Там сейчас развели кипучую возню, чтобы поставить
расширения враскоряку как можно быстрее.
Я наконец поборол лень...
С подписью: custom_buttons-0.0.5.8.9-fixed5-signed.xpi
Без подписи: custom_buttons-0.0.5.8.9-fixed5.xpi
Ставится на Firefox 57, если сделать
extensions.allow-non-mpc-extensions = true
extensions.legacy.enabled = true
И до кучи немного оживил DOM Inspector: dom_inspector-2.0.16-fixed.xpi
Отредактировано Infocatcher (19-09-2017 17:13:38)
Отсутствует
Вожусь со скроллингом с нажатой ctrl. Добился скроллинга и по горизонтали и по вертикали.
Скроллинг работает гораздо аккуратнее, чем колёсиком - можно подвинуть буквально на пару пикселей в какую хочешь сторону (и в обе стороны, если и по горизонтали не вмещается)
Но есть проблема.
Если надо проскроллить больше видимой страницы, то дойдя до низа с нажатой ctrl, ожидаешь, что если отпустить ctrl (чтобы отключить скроллинг) а затем перевести курсор наверх, чтобы продолжить скроллить, нажав ctrl, то скроллинг продолжится с этого места.
Не тут то было! Эта штука почему-то "думает", что мы в начале страницы, переводит весь контент туда и начинает скроллить как будто content.scrollY = 0, хотя "знает" что он - другой (я алертом выяснил).
Иными словами, она переводит всё в ту точку, в которой я бы находился, начав скроллить с начала страницы и до этой точки...
Как заставить эту штуку не начинать сначала - не знаю...
Может кто-то посоветует?
Вот код:
var height = document.documentElement.scrollHeight, width = document.documentElement.scrollWidth; function scroll(e){ var v = content.scrollY; // я пытался как-то увязать эти v и h var h = content.scrollX; // с параметрами скроллинга, но безрезультатно... var y = e.clientY; var yPercentage = y/screen.height; var x = e.clientX; var xPercentage = x/screen.width; //alert(content.scrollY); //ctrlKey is subject to change as more features will be added if (e.ctrlKey){ content.scrollTo(5*xPercentage*width,5*yPercentage*height); } } window.onmousemove = scroll;
Коэффициентами можно увеличить размер того, что скроллится (и скорость скроллинга) но это не совсем хорошее решение.
Если знать размер страницы по вертикали (в пикселях), то можно вычислить коэффициент по вертикали
Но при больших коэффициентах снижается аккуратность.
Но я не знаю даже как получить размер страницы
Может кто-то что-то посоветует?
С window.onmousemove = scroll я тоже "игрался"...
И gBrowser.onmousemove = scroll; и content.onmousemove = scroll; - тот же результат...
Отсутствует
Infocatcher пишет:
С подписью: custom_buttons-0.0.5.8.9-fixed5-signed.xpi
Без подписи: custom_buttons-0.0.5.8.9-fixed5.xpi
Это просто праздник!!!
Сердечно благодарю, что приютил, спасибо!
Я внешним редактором не пользуюсь совсем,
поэтому неудивительно, что я не в курсе что там за undefined
var conv = Cc['@mozilla.org/intl/saveascharset;1'].
(editExternal.js Line 274, custombuttons.jar Line 3990)
Но как я просмотрел там же
if (filePicker.show() == nsIFilePicker.returnOK) {
(editExternal.js Line 109, custombuttons.jar Line 3825)
вообще не понятно. Это то я уж точно искал везде.
Отредактировано Dumby (19-09-2017 19:08:16)
Отсутствует