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));
чтобы при закрытии вкладок появлялость подобное сообщение:
«The Truth Is Out There»
Отсутствует
Здравствуйте.
Что нужно дописать к этим кодам:Выделить кодКод:
// Закрыть все вкладки [...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
Спасибо за помощь.
«The Truth Is Out There»
Отсутствует
"кнопка-время" стало показывать время с отставанием на три часа
может дело в этой кнопке?
/*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)
Отсутствует
"кнопка-время" стало показывать время с отставанием на три часа
может дело в этой кнопке?
Нет. Но в чём проблема я не знаю, может у тебя что с системными часами.
Отсутствует
Кому надоело отключать 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); })();
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
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)
Отсутствует
Кому надоело отключать 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)
Отсутствует
Только код вроде с ошибками? у меня цвет кнопки меняеться, если с кодом что-то не так.
addEventListener('keydown', e=> { if ( (e.ctrlKey) && (!e.altKey) && (!e.shiftKey) && (e.keyCode == 70) ) { e.preventDefault(); gFindBar.hidden ? gFindBar.open() : gFindBar.close(); } });
Отсутствует
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)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
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)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
intersk пишет: системные часы показывают правильное времяНу тогда не знаю. У меня Часы работает нормально на FF55.
intersk пишет: системные часы показывают правильное времяЕсли выставлено privacy.resistFingerprinting = true, все функции про время будут вести себя, как будто часовой пояс UTC+0. Что самое интересное, для расширений и самого браузера – тоже переправляет...
изменил в конфиге и даже ставил кнопку по ссылке бунды1 - время отстает на 3 часа
Отредактировано intersk (19-09-2017 09:24:30)
Отсутствует
алерты - они прекрасно срабатывают
Тогда вот тебе ещё один
напр. на addons.mozilla.org
Это же WebExtensions. Они на АМО и не должны работать.
Если выставлено privacy.resistFingerprinting
Ух ты, даже рестарт не нужен!
Двойной клик по настройке в about:config, и часы сразу перепрыгивают.
время отстает на 3 часа
Ну так подведи сколько надо, типа d.setHours(d.getHours() + 3);
Отсутствует
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) всё равно не пойму...
Конечно, цель (скроллить через СВ) - достигнута, но как я был тупицей, так и остался...
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Про ночнушку трудно что-то определённое сказать.
Там сейчас развели кипучую возню, чтобы поставить
расширения враскоряку как можно быстрее.
Я наконец поборол лень...
С подписью: 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; - тот же результат...
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
С подписью: 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)
Отсутствует