Изменить масштаб( Firefox 24 + )
Автор: bunda1
Версия: от 27.11.2017.
Описание: Kод создает в адресной строке кнопку которая показывает размер масштаба текущей страницы. Можно передвигать кнопку в адресной строке относительно других элементов строки изменяя в коде величину в строке margin-right: -1px;
Колесиком мыши на кнопке можно менять масштаб текущей страницы.
Левым кликом на кнопке можно переключить режим изменения масштаба - менять масштаб страниц или менять масштаб только текста на страницах, если переключена на менять только текст размер масштаба в адресной строке будет отображаться жирным шрифтом.
Средним кликом на кнопке можно переключить - единый масштаб для всех страниц или только для сайта, если переключена на единый масштаб для всех страниц - размер масштаба в адресной строке будет красного цвета.
Правым кликом на кнопке можно сбросить масштаб на 100%.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
// Кнопка для управления масштабом страницы в адресной строке, от 27.11.2017. .......................... (()=> { // Удалить из адресной строки FF51 стандартную кнопку масштаба .... var but = document.getElementById('urlbar-zoom-button'); if (but) but.style.display = "none"; // Создать в адресной строке кнопку масштаба .... var zoomButton = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons"); // FF57 urlbarIcons.insertBefore(zoomButton, urlbarIcons.lastChild); // перед последней кнопкой адресной строки addDestructor(()=> zoomButton.remove()); updateZoomButton(); zoomButton.id = "zoomButton"; zoomButton.setAttribute("context", "event.stopPropagation()"); zoomButton.style.cssText = "-moz-appearance: none; border: 0; margin-right: -1px;"; // Css стиль для кнопки масштаба zoomButton.tooltipText = "Л: Менять масштаб страницы или только текста\nС: Единый масштаб для всех страниц \nП: Сбросить масштаб на 100% "; // Отслеживать клики на кнопке масштаба .... addEventListener("click", e=> { if ( e.button == 0 ) ZoomManager.toggleZoom(); // переключить режим изминения масштаба if ( e.button == 1 ) { // единый масштаб для всех страниц cbu.isPref("CB.zoom.allEvenly", false); cbu.setPrefs("CB.zoom.allEvenly", !cbu.getPrefs("CB.zoom.allEvenly") ); cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) ); updateZoomButton(); } if ( e.button == 2 ) FullZoom.reset(); // сбросить масштаб }, false, zoomButton); // Менять масштаб колесиком мыши на кнопке масштаба .... addEventListener("DOMMouseScroll", e=> { e.detail > 0 ? FullZoom.reduce() : FullZoom.enlarge(); }, false, zoomButton); // Следим за изменением масштаба и запускаем обновление кнопки .... var str = "{ setTimeout(()=> { updateZoomButton() }, 50);"; var handleEvent = parseInt(Services.appinfo.version) > 33 ? FullZoom.handleEvent : FullZoom._handleMouseScrolled; var array = [FullZoom.reset, FullZoom.reduce, FullZoom.enlarge, ZoomManager.toggleZoom, handleEvent]; array.forEach(func=> { setTimeout(()=> { eval( (func.toString().replace('_', '.').match(/function ([^(]*)\(/)[1] + " = " + func.toString().replace("{", str)) )}, 50) }); addDestructor(()=> { array.forEach(func=> { eval( (func.toString().replace('_', '.').match(/function ([^(]*)\(/)[1] + " = " + func.toString()).replace(str,"{") ) }); }); // Показывать текущий масштаб страницы на кнопке и изменять цвет и шрифт отображения масштаба .... function updateZoomButton(e) { zoomButton.label = Math.round(ZoomManager.zoom*100) + "%"; setTimeout(()=> { zoomButton.style.fontWeight = ZoomManager.useFullZoom ? '' : 'bold'; zoomButton.style.color = cbu.getPrefs("CB.zoom.allEvenly") ? "red" : ""; }, 5); // запомнить текущий масштаб в 'about:config' if ( e == undefined ) { try { window.clearTimeout(zoomButton.prefTimeout) } catch(e) {}; zoomButton.prefTimeout = window.setTimeout(()=> { cbu.setPrefs("CB.zoom.Percent", ZoomManager.zoom.toFixed(2) ) }, 250); } }; // Устанавливать единый масштаб для всех страниц если это разрешено в 'about:config' .... addEventListener("TabAttrModified", e=> { if ( e.target.linkedBrowser.currentURI.spec !== gBrowser.currentURI.spec ) return; if ( cbu.getPrefs("CB.zoom.allEvenly") && content.location.protocol.startsWith("http") ) { var value = cbu.getPrefs("CB.zoom.Percent"); if ( ZoomManager.zoom.toFixed(2) == value ) return; setTimeout(()=> { gBrowser.markupDocumentViewer[ZoomManager.useFullZoom ? 'fullZoom' : 'textZoom'] = value; updateZoomButton(e); }, 0); } else updateZoomButton(e); }, true, gBrowser.tabContainer); })();
Отредактировано bunda1 (23-08-2014 16:36:20)
Отсутствует
Добавьте пожалуйста сброс до 100% по правому клику или по двойному.
Отсутствует
Левым кликом на кнопке можно переключить - менять масштаб страницы или только текста на странице(размер масштаба в адресной строке будет жирным шрифтом).
ПКМ и СКМ тоже
Отсутствует
Добавьте пожалуйста сброс до 100% по правому клику или по двойному.
Я сделал сброс до 100% по правому клику.
Добавлено 13-11-2011 15:59:39
bunda1 пишетЛевым кликом на кнопке можно переключить - менять масштаб страницы или только текста на странице(размер масштаба в адресной строке будет жирным шрифтом).
ПКМ и СКМ тоже
Исправил. Спасибо что быстро находишь мои ошибки.
Отредактировано bunda1 (13-11-2011 16:00:04)
Отсутствует
bunda1
Пользуюсь вашей кнопкой Zoom2 Просматриваешь скажем форум, выставил 200% масштаб, переходишь на вторую страницу форума сбрасывает на 100%, тоже самое при открытии др. вкладки или новой страницы.
Можно ли сделать, чтобы отформатированный масштаб браузер сохранял на другие страницы?
Отсутствует
Пользуюсь вашей кнопкой Zoom2 Просматриваешь скажем форум, выставил 200% масштаб, переходишь на вторую страницу форума сбрасывает на 100%
У меня такого не наблюдается, это на каком форуме? Кнопка устанавливает единый масштаб для сайта - под одним адресом, но не для новых страниц, которые находятся на других сайтах.
Можно ли сделать, чтобы отформатированный масштаб браузер сохранял на другие страницы?
На все страницы? Мне кажется это будет очень не удобно. Я постоянно меняю масштаб для разных сайтов.
Можно зделать так.
about:config
browser.zoom.siteSpecific - false
Отредактировано bunda1 (17-11-2011 18:39:55)
Отсутствует
Изменить масштаб (Firefox 3.6 - 10)
Добавил новые возможности:
Теперь можно: cредним кликом на кнопке переключить - единый масштаб для всех страниц или только для сайта, если переключена на единый масштаб для всех страниц - размер масштаба в адресной строке будет подчеркнут.
Отредактировано bunda1 (17-11-2011 21:07:08)
Отсутствует
Была у меня ваша кнопка "Zoom2" я решил сделать еще одну кнопку "Изменить масштаб", но поскольку мне нужно чтобы масштаб сохранялся, а не откатывался на 100% я обе кнопки удалил, но в адресной строке масштаб остался
Щас я создал новую кнопку, масштаб выделяется ЛКМ, подчеркивается Средней кнопкой, откатывается до 100 ПКМ, но главное подчеркивание средней кнопкой не сохраняет масштаб
Отредактировано BBoxerb (18-11-2011 13:30:49)
Отсутствует
но главное подчеркивание средней кнопкой не сохраняет масштаб
Точно есть такая проблема, самопроизвольный сброс на 100% ,тут надо подумать.
Но вроде решение есть.
Отсутствует
bunda1
А у меня просьба вместо подчёркивания сделать изменение цвета, например на синий. А то я уменьшил высоту адресной строки и у меня подчёркивание не видно. Возможно?А у меня просьба вместо подчёркивания сделать изменение цвета, например на синий. А то я уменьшил высоту адресной строки и у меня подчёркивание не видно. Возможно?
Отсутствует
bunda1
А черту приблизить ближе к цифре это возможно?
папробуй изменить в userChrome.css высоту для #ucjs_zoom_statuslabel
или измени в коде
на что то, например на
Отсутствует
Изменить масштаб (Firefox 3.6 - 10)
Исправил ошибки:
самопроизвольный сброс масштаба, если масштаб на странице изменялся расширением FireGestures или чем то подобным и если кнопка была переключена на единый масштаб для всех страниц.
Отсутствует
iluha-mai
Средним кликом на кнопке можно переключить - единый масштаб для всех страниц или только для сайта, если переключена на единый масштаб для всех страниц - размер масштаба в адресной строке будет подчеркнут.
Отсутствует
Изменить масштаб (Firefox 3.6 +) Изменить масштаб(Firefox 3.6 +)
Изменил: Теперь если кнопка переключена на единый масштаб для всех страниц - размер масштаба в адресной строке будет красного цвета.
Отредактировано bunda1 (20-05-2012 18:48:49)
Отсутствует
Обновил код иниц. Нууу что-то у меня при открытии новой вкладки масштаб выделенный красным сбрасывает на 100%, скажем с 80-->100:rolleyes:
Так и должно быть, ты же включил единый масштаб для всех страниц = 100% 20-05-2012 17:47:57
Отредактировано bunda1 (11-06-2012 18:35:44)
Отсутствует
bunda1
Наверное что-то не так вставил, я правивльно понимаю, что если жирным черным то он должен сохранять старый масштаб для всех вкладок( скажем 80%) а с красным он сбрасывает на 100%?
Отредактировано BBoxerb (11-06-2012 14:42:33)
Отсутствует
... я правивльно понимаю, что если жирным черным то он должен сохранять старый масштаб для всех вкладок( скажем 80%) а с красным он сбрасывает на 100%?
Нет не правильно:
Если жирным черным то для каждого сайта будет свой масштаб.
Если красным то будет единый масштаб для всех страниц, если включил красный на странице у который масштаб скажем 80% то у всех страниц теперь будет 80%. Но это можно любой момент изменить если колесиком мыши изменить масштаб текущей страницы и тогда у всех страниц теперь будет размер такой же как текущей страницы. Все просто.
Отредактировано bunda1 (11-06-2012 19:09:15)
Отсутствует
bunda1
А нельзя сделать, чтобы правило красного распространялось и на вкладки? При открытии новой вкладки он сбрасывает на 100%
В Огн.Лисе лично я открываю новые вкладки по максимуму, а новую страницу только тогда, когда вкладок накопится штук 20-ть
Отсутствует