kokoss пишет:
скрыть синюю линию между панелью навигации и вкладок?
скрытый текст
Класс! Этот стиль не только линию скрыл, но и изменил фон в "identity box"
kokoss пишет:
сдвинуть в право кнопки управления окном
Нельзя на аеро теме, можно только заменить их - добавить поверх другие кнопки
А хотя бы скрыть светлую полоску(при использовании тёмной темы) с права, на скрине она видна ?
Отредактировано kokoss (16-12-2019 21:07:38)
Win7
Отсутствует
Да нашел я
там же вместе с добавленными кнопками ровнять надо, пробуй так, добавь в стиль кнопки или @-moz-document url-prefix("chrome://mozapps/content/extensions/") { сюда }
addon-card .cb-cloned-buttons-container,
addon-card .more-options-menu {
display: flex !important;
align-items: end !important;
align-self: end !important;
margin-top: 0 !important;
}addon-card panel-list[valign="top"] {
bottom: 20px !important;
}
А хотя бы скрыть светлую полоску(при использовании тёмной темы) с права, на скрине она видна ?
Надо в 7 посмотреть позже гляну
Добавлено 16-12-2019 21:10:17
но и изменил фон в "identity box"
Нет такого не должно быть, наверно у вас где то ошибка синтаксиса была или появилась
Отредактировано Vitaliy V. (16-12-2019 21:10:17)
Отсутствует
kokoss пишет:
но и изменил фон в "identity box"
Нет такого не должно быть, наверно у вас где то ошибка синтаксиса была или появилась
Вы правы, просто была отключена строка: @import "./css/locationbar/identitybox_colors.css"; /**/ в стилях Arisa.
Win7
Отсутствует
может не это окно а только загрузки https://github.com/alice0775/userChrome … ager.uc.js
размеры окна и расположение запоминаются в about:config
browser.download.manager.size.XXX
Не могу даже увидеть, что это, увы, смог только сохранить этот .js. Непонятно, как его применить, куда поместить. По параметру для about:config тоже непонятно, такого, даже без .ХХХ, в нем нет. Его создать в таком виде: browser.download.manager.size = 720? Прошу помощи.
Отредактировано shadow_user (16-12-2019 21:42:04)
Отсутствует
Окончательный код для скрытия заголовка и панели вкладок опубликован здесь - https://forum.mozilla-russia.org/viewto … 56#p775956 Пока вроде все.
Vitaliy V.
Сделал как вы сказали. Спасибо!
Раньше думал, что не получится привести вид браузера к такому же виду как в 30-50 версиях у меня было. Однако мечты сбываются.
Отредактировано _zt (16-12-2019 21:58:27)
Отсутствует
shadow_user пишет: По параметру для about:config тоже непонятно, такого, даже без .ХХХ, в нем нет.
Ну этот параметр скорее всего создаёт сам скрипт. Залил на диск Яндекса три комплекта с авто-стартом русифицированного окна загрузок с использованием скрипта для 68 версии.
Комплект на базе user_chrome_files с окном загрузок и кнопкой паузы. Огромное Спасибо Виталию за комплект, а также за раннее оказанную помощь в подключении скрипта и кнопки паузы к комплекту. Комплект сегодня обновил и пересобрал. Файл user_style теперь custom_style_user и перекочевал в папку custom_styles, поближе к импортируемым стилям, что наверное положительный момент. Присутствует снимки самого окна загрузок и окна нужных для его работы - включенных стиля и скриптов.
Комплект для запуска скрипта окна загрузок и само окно на базе скриптов Alice0775 для 68 версии. Для 71-ой версии уже требуется другие userChrome.js и userChrome.xml и конечно ucjsDownloadsManager.uc.js. Этот вариант мне не по душе, дюже уж громоздкий userChrome.js.
Комплект на базе второго метода от Aris-a с окном загрузок для 68 версии. Кнопку паузы к последним двум комплектам прикрутить естественно мне не удалось. Перед использованием комплектов скриптов, при их смене, добавлении новых скриптов, редактировании скриптов - обязательна очистка папки startupCache.
Отредактировано sandro79 (17-12-2019 00:26:24)
Отсутствует
kokoss
возможно у вас какой то стиль переопределяет этот код
:root[sizemode="maximized"] .titlebar-buttonbox { margin-inline-end: 3px !important; }
Отсутствует
возможно у вас какой то стиль переопределяет этот код
скрытый тексттам должен быть отступ 3px или попробуйте 4px но может вначале вылезти
Проверял и без стилей, то же самое. Полностью не скрывает, как вы и указали, если убрать с левой стороны, вылазит с правой. Спасибо за помощь!
Win7
Отсутствует
Залил на диск Яндекса три комплекта с авто-стартом русифицированного окна загрузок
Спасибо огромное, пробую. До этого по инструкциям с обеих сайтов делал, но бесполезно, не получилось.
Добавлено 17-12-2019 00:34:58
Успел проверить второй комплект, как самый простой в реализации, заработал совершенно без вопросов. Заметил, если окно загрузок после предыдущей загрузки не закрыто, а в фоне, то при старте следующей загрузки оно не берет фокус. У вас тоже так?
Премного благодарен!
Отредактировано shadow_user (17-12-2019 00:36:15)
Отсутствует
shadow_user пишет: Заметил, если окно загрузок после предыдущей загрузки не закрыто, а в фоне, то при старте следующей загрузки оно не берет фокус. У вас тоже так?
Аналогично, но хоть такой костыль. Предпочтительнее всё же первый или третий вариант реализации. Первый вообще может работать при перезапуске браузера в безопасный режим. И это очень круто, ИМХО. И перед использованием комплектов скриптов, при их смене, добавлении новых скриптов, редактировании скриптов - обязательна очистка папки startupCache.
shadow_user пишет: До этого по инструкциям с обеих сайтов делал, но бесполезно, не получилось.
Ну правильно, вы же наверно использовали код ucjsDownloadsManager.uc.js для 69-72 по ссылке из этого сообщения.
if (location.href == "chrome://browser/content/browser.xhtml") { Cu.import("resource://gre/modules/Services.jsm"); window.ucjs_downloadManager = { _summary: null, _list: null, createElement: function(localName, arryAttribute) { let elm = document.createXULElement(localName); for(let i = 0; i < arryAttribute.length; i++) { elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value); } return elm; }, init: function() { window.addEventListener("unload", this, false); let ref = document.getElementById("menu_openDownloads"); let menu = ref.parentNode.insertBefore( this.createElement("menuitem", [{attr: "label", value:"Менеджер загрузок"}, {attr : "oncommand", value: "ucjs_downloadManager.openDownloadManager(true);"} ]), ref); XPCOMUtils.defineLazyModuleGetter(this, "Downloads", "resource://gre/modules/Downloads.jsm"); // Ensure that the DownloadSummary object will be created asynchronously. if (!this._summary) { this.Downloads.getSummary(this.Downloads.ALL).then(summary => { this._summary = summary; return this._summary.addView(this); }).then(null, Cu.reportError); } if (!this._list) { this.Downloads.getList(this.Downloads.ALL).then(list => { this._list = list; return this._list.addView(this); }).then(null, Cu.reportError); } }, uninit: function() { window.removeEventListener("unload", this, false); if (this._summary) { this._summary.removeView(this); } if (this._list) { this._list.removeView(this); } }, handleEvent: function(event) { switch (event.type) { case "unload": this.uninit(); break; } }, openDownloadManager: function ucjs_openDownloadManager(aForceFocus) { var enumerator = Services.wm.getEnumerator(null); while(enumerator.hasMoreElements()) { var win = enumerator.getNext(); if (win.location == "chrome://browser/content/downloads/contentAreaDownloadsView.xul" && PrivateBrowsingUtils.isWindowPrivate(window) == PrivateBrowsingUtils.isWindowPrivate(win)) { if (aForceFocus) win.focus(); return; } } try { var height = Math.max(100,Services.prefs.getIntPref("browser.download.manager.size.height")); var width = Math.max(300,Services.prefs.getIntPref("browser.download.manager.size.width")); var screenX = Math.min(Math.max(0,Services.prefs.getIntPref("browser.download.manager.size.screenX")), screen.availWidth - width); var screenY = Math.min(Math.max(0,Services.prefs.getIntPref("browser.download.manager.size.screenY")), screen.availHeight - height); } catch(r){ height = 300; width = 600; screenX = 0; screenY = 0; } var win = window.open("chrome://browser/content/downloads/contentAreaDownloadsView.xul", "Download" + (PrivateBrowsingUtils.isWindowPrivate(window) ? " - Private Window" : ""), "outerWidth=" + width + ",outerHeight=" + height + ",left=" + screenX + ",top=" + screenY + ",chrome,toolbar=yes,dialog=no,resizable"); }, closeDownloadManager: function ucjs_closeDownloadManager() { var enumerator = Services.wm.getEnumerator(null); while(enumerator.hasMoreElements()) { var win = enumerator.getNext(); if (win.location == "chrome://browser/content/downloads/contentAreaDownloadsView.xul") { win.close(); return; } } }, onDownloadAdded: function (aDownload) { var showWhenStarting = true; try { showWhenStarting = Services.prefs.getBoolPref("browser.download.manager.showWhenStarting"); } catch(e) {} var numDls = 0; if (showWhenStarting) { if (this._list) { this._list.getAll().then(downloads => { for (let download of downloads) { if (!download.stopped) numDls++; } if (numDls > 0) this.openDownloadManager(false); }).then(null, Cu.reportError); } } }, onDownloadChanged: function (aDownload) { if (!this._list) return; this._list.getAll().then(downloads => { var num = 0; for (let download of downloads) { if (!download.succeeded) num++; } if (num == 0) { var closeWhenDone = false; try { closeWhenDone = Services.prefs.getBoolPref("browser.download.manager.closeWhenDone"); } catch(e) {} if (closeWhenDone) { this.closeDownloadManager(); } } }).then(null, Cu.reportError); } }; ucjs_downloadManager.init(); } if (window.opener && location.href == "chrome://browser/content/downloads/contentAreaDownloadsView.xul") { Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource://gre/modules/DownloadIntegration.jsm"); window.ucjs_downloadManagerMain = { originalTitle:"", _summary: null, _list: null, _wait:false, createElement: function(localName, arryAttribute) { let elm = document.createXULElement(localName); for(let i = 0; i < arryAttribute.length; i++) { elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value); } return elm; }, createElementNS: function(NS, localName, arryAttribute) { let elm = document.createElementNS(NS, localName); for(let i = 0; i < arryAttribute.length; i++) { elm.setAttribute(arryAttribute[i].attr, arryAttribute[i].value); } return elm; }, init: function() { window.addEventListener("unload", this, false); // xxx remove in-content css var elements = document.childNodes; for (var i = 0; i <= elements.length; i++) { var element = elements[i]; if (element.nodeValue.indexOf("chrome://browser/skin/downloads/contentAreaDownloadsView.css") > -1) { document.removeChild(element); break; } } /* var style = ' \ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); \ #contentAreaDownloadsView { \ padding: 0 ; \ } \ #downloadsRichListBox:empty + #downloadsListEmptyDescription { \ pointer-events: none; \ } \ '.replace(/\s+/g, " "); var sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; */ let ref = document.documentElement; ref = ref.appendChild(this.createElement("hbox", [])); ref.appendChild(this.createElement("button", [{attr: "id", value: "ucjs_clearListButton"}, {attr: "label", value: "Очистить загрузки"}, ])); ref.appendChild(this.createElement("spacer", [{attr: "flex", value: "1"}])); ref.appendChild(this.createElementNS("http://www.w3.org/1999/xhtml", "input", [{attr: "id", value: "ucjs_downloadManagerMain_input"}, {attr: "clickSelectsAll", value: "true"}, {attr: "type", value: "search"}, {attr: "placeholder", value: "Поиск..."}, {attr: "aria-autocomplete", value: "list"} ])); document.getElementById("ucjs_clearListButton").addEventListener("command", function(event) { ucjs_downloadManagerMain.clearDownloads(); }); document.getElementById("ucjs_downloadManagerMain_input") .addEventListener("input", function(event) { ucjs_downloadManagerMain.doSearch(event.target.value); }); this.originalTitle = document.title + (PrivateBrowsingUtils.isWindowPrivate(window) ? " - Private Window" : ""); /* // xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out var listBox = document.getElementById("downloadsRichListBox"); var placesView = listBox._placesView; var place = placesView.place; placesView.place= null; placesView.place = place; */ setTimeout(function(){this._wait = true}.bind(this), 0); // Ensure that the DownloadSummary object will be created asynchronously. if (!this._summary) { Downloads.getSummary(Downloads.ALL).then(summary => { this._summary = summary; return this._summary.addView(this); }).then(null, Cu.reportError); } if (!this._list) { Downloads.getList(Downloads.ALL).then(list => { this._list = list; return this._list.addView(this); }).then(null, Cu.reportError); } try { var showProgressInTaskButton = Services.prefs.getBoolPref("browser.download.manager.showProgressInTaskButton") } catch(ex) { showProgressInTaskButton = true; //default } if (showProgressInTaskButton) setTimeout(function() { try { let docShell = window.QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIWebNavigation) .QueryInterface(Ci.nsIDocShellTreeItem).treeOwner .QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIXULWindow).docShell; let gWinTaskbar = Components.classes["@mozilla.org/windows-taskbar;1"] .getService(Components.interfaces.nsIWinTaskbar); this._taskbarProgress = gWinTaskbar.getTaskbarProgress(docShell); } catch(ex) { this._taskbarProgress = null; } }.bind(this), 10); }, uninit: function() { window.removeEventListener("unload", this, false); this._taskbarProgress = null; if (this._wait) this.saveSizePosition(); if (this._summary) { this._summary.removeView(this); } if (this._list) { this._list.removeView(this); } }, handleEvent: function(event) { switch (event.type) { case "unload": this.uninit(); break; } }, saveSizePosition: function() { if (window.windowState == 3) { Services.prefs.setIntPref("browser.download.manager.size.height", window.outerHeight); Services.prefs.setIntPref("browser.download.manager.size.width", window.outerWidth); Services.prefs.setIntPref("browser.download.manager.size.screenX", window.screenX); Services.prefs.setIntPref("browser.download.manager.size.screenY", window.screenY); } }, onSummaryChanged: function () { if (!this._summary) return; if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) { document.title = this.originalTitle; if (this._taskbarProgress) { this._taskbarProgress.setProgressState( Ci.nsITaskbarProgress.STATE_NO_PROGRESS, 0, 0); } Cu.import("resource://gre/modules/Services.jsm"); var enumerator = Services.wm.getEnumerator("navigator:browser"); while(enumerator.hasMoreElements()) { return; } var closeWhenDone = false; try { closeWhenDone = Services.prefs.getBoolPref("browser.download.manager.closeWhenDone"); } catch(e) {} if (closeWhenDone) { DownloadIntegration._store.save(); window.close(); } } else { // If the last browser window has been closed, we have no indicator any more. if (this._taskbarProgress) { if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) { this._taskbarProgress.setProgressState( Ci.nsITaskbarProgress.STATE_NO_PROGRESS, 0, 0); } else { // For a brief moment before completion, some download components may // report more transferred bytes than the total number of bytes. Thus, // ensure that we never break the expectations of the progress indicator. let progressCurrentBytes = Math.min(this._summary.progressTotalBytes, this._summary.progressCurrentBytes); this._taskbarProgress.setProgressState( Ci.nsITaskbarProgress.STATE_NORMAL, progressCurrentBytes, this._summary.progressTotalBytes); } } // Update window title var numDls = 0; if (!this._list) return; this._list.getAll().then(downloads => { for (let download of downloads) { if (download.hasProgress && !download.succeeded) numDls++; } let progressCurrentBytes = Math.min(this._summary.progressTotalBytes, this._summary.progressCurrentBytes); let percent = Math.floor(progressCurrentBytes / this._summary.progressTotalBytes * 100); let text = percent + "% из " + numDls + (numDls < 2 ? " файла - " : " файлов - ") ; document.title = text + this.originalTitle; }).then(null, Cu.reportError); } }, clearDownloads: function ucjs_clearDownloads() { var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */ var richListBox = document.getElementById("downloadsRichListBox"); var places = []; function addPlace(aURI, aTitle, aVisitDate) { places.push({ uri: aURI, title: aTitle, visits: [{ visitDate: (aVisitDate || Date.now()) * 1000, transitionType: Ci.nsINavHistoryService.TRANSITION_LINK }] }); } function moveDownloads2History(d) { if (DO_NOT_DELETE_HISTORY && !PrivateBrowsingUtils.isWindowPrivate(window)) { for (let element of richListBox.childNodes) { let download = element._shell.download; let aURI = makeURI(download.source.url); // let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value let aTitle = download.target.path; aTitle = aTitle.match( /[^\\]+$/i )[0]; aTitle = aTitle.match( /[^/]+$/i )[0]; let aVisitDate = download.endTime || download.startTime; addPlace(aURI, aTitle, aVisitDate) } } // Clear List richListBox._placesView.doCommand('downloadsCmd_clearDownloads'); if (DO_NOT_DELETE_HISTORY && !PrivateBrowsingUtils.isWindowPrivate(window)) { if (places.length > 0) { var asyncHistory = Components.classes["@mozilla.org/browser/history;1"] .getService(Components.interfaces.mozIAsyncHistory); asyncHistory.updatePlaces(places); } } } var btn = document.getElementById("ucjs_clearListButton"); moveDownloads2History(0); }, doSearch: function ucjs_doSearch(filterString) { var richListBox = document.getElementById("downloadsRichListBox"); richListBox._placesView.searchTerm = filterString; } }; ucjs_downloadManagerMain.init(); }
Отредактировано sandro79 (17-12-2019 09:19:37)
Отсутствует
И перед использованием комплектов скриптов, при их смене, добавлении новых скриптов, редактировании скриптов - обязательна очистка папки startupCache.
Когда тренировался, чистил. А ваш второй комплект заработал без чистки. Надеюсь сегодня посмотреть первый и третий.
Отсутствует
Отсутствует
shadow_user пишет: А ваш второй комплект заработал без чистки.
Действительно, с этими скриптами чистка не требуется, видимо потому что скрипты запускаются не из директории установки Firefox, а из папки chrome профиля.
Этот метод имеет ещё особенность, - можно запустить нужный скрипт, просто поместив его в папку chrome, при этом не требуется прописывать никаких путей в скрипте userChrome.js. В 72+ уже этот метод работать не будет и требуется запуск из директории установки Firefox.
Ovod пишет: все кажись
Работает!? Значит всё!!!
Отредактировано sandro79 (17-12-2019 16:07:23)
Отсутствует
В 72+ уже этот метод работать не будет и требуется запуск из директории установки Firefox.
Думаю, я надолго на 68, слишком хлопотный процесс перехода. В 1 комплекте, видимо, нужно пути прописывать, поэтому я его не смог запустить. 3 комплект заработал без проблем, на нем и остановился.
Побочный эффект от экспериментов - имевшимися у меня файлами и вашими (2 + 2) смог оживить переставший работать родной прогресс загрузки, теперь тоже всплывает при каждой загрузке. Будет запасной вариант. Спасибо еще раз!
все кажись
Можно и так. В окне по звездочке можно отключить экран с превью и увеличить размер окна. Для первого https://forum.mozilla-russia.org/viewto … 19#p770819
для второго часть кода отсюда https://forum.mozilla-russia.org/viewto … 79#p728779
Отсутствует
shadow_user пишет: В 1 комплекте, видимо, нужно пути прописывать, поэтому я его не смог запустить. 3 комплект заработал без проблем, на нем и остановился.
Да нет, всё уже прописано и готово к использованию, только птички расставить в настройках комплекта user_chrome_files(скрин есть в архиве) и перезапустить браузер через окно настроек. Если содержимое архива размещено как указано в инструкции, то проблем быть не должно. Может с профилем чего.
Да, третий вариант наверное самое то, если не требуются доп. панели и запуск специфических скриптов и стилей. Рад был помочь.
ucjsDownloadsManager.uc для 71 версии https://yadi.sk/d/hEdZ7lMUwFLrqg, упаковал файл в архив, а то скачивался как txt.
Отредактировано sandro79 (18-12-2019 00:22:34)
Отсутствует
del
Отредактировано Vitaliy V. (14-04-2022 01:30:30)
Отсутствует
Vitaliy V. Благодарю! Проверил, вроде и придраться не к чему. Всё отлично, как по мне. Я понял, что в 72+ стало ещё сложнее привести about:addons к привычному виду, т.к. уже появились в коде - content: "Включить" !important; и content: "Отключить" !important;, ну т.е. приходится назначать уже вручную текст на кнопках. Немного рихтанул код - на всю ширину окна растянул --v-main-max-width: none !important;. Отлично, спасибо!
Отсутствует
Да нет, всё уже прописано и готово к использованию, только птички расставить в настройках комплекта user_chrome_files(скрин есть в архиве)
Не смог я получить то, что на скрине.
Отсутствует
sandro79
нужно в custom_script_all_win.js добавить этот код
if (window.opener && location.href.startsWith("chrome://browser/content/downloads/contentAreaDownloadsView.x")) { try { Services.scriptloader.loadSubScript("chrome://user_chrome_files/content/custom_scripts/places_win.js", window, "UTF-8"); } catch(e) {} }
Отредактировано Vitaliy V. (17-12-2019 21:35:34)
Отсутствует
нужно в custom_script_all_win.js добавить этот код...
Да, да. У меня там несколько другой код, где // Здесь может быть ваш код который сработает по событию "load" не раньше
try { Services.scriptloader.loadSubScript("chrome://user_chrome_files/content/custom_scripts/ucjsDownloadsManager.uc.js", window, "UTF-8"); } catch(e) {}
var observer = { observe: function(aSubject, aTopic, aData) { if (aTopic == "domwindowopened" && aSubject instanceof Ci.nsIDOMWindow) { aSubject.addEventListener("load", function domLoad() { aSubject.removeEventListener("load", domLoad, false); var loc = aSubject.location; if (loc && loc.href.startsWith("chrome://browser/content/downloads/contentAreaDownloadsView.x")) { try { Services.scriptloader.loadSubScript("chrome://user_chrome_files/content/custom_scripts/places_win.js", aSubject, "UTF-8"); } catch(e) {} } }, false); } } }; Services.obs.addObserver(observer, "domwindowopened", false);
Отсутствует
А без custom_script.js кнопка паузы доступна только в окне библиотеки, а в авто-стартующем окне её нет.
В 68 всё работает без custom_script.js
а в 71 могут не загрузится иконки (в окне загрузок вызываемом ucjsDownloadsManager.uc.js не важно с custom_script.js или без)
Content Security Policy: Параметры страницы заблокировали загрузку ресурса data:image/....
можно сделать отдельные иконки .svg или .png
Да, да. У меня там несколько другой код
Вот именно, добавьте мой код и заработает
Отредактировано Vitaliy V. (18-12-2019 00:33:24)
Отсутствует
Vitaliy V. пишет: В
68 всё работает без custom_script.js
Да, действительно, добавил код в конец скрипта и заработало без custom_script.js. Что-то я сразу не понял и начал его совать вместо того, что запускает ucjsDownloadsManager.uc.js с мыслью, - а разве так будет работать? Непонятно, вот переклинило меня именно заменить, а не добавить, хотя ясно было сказано - добавить. Спасибо. Виталий, ещё один момент хотел уточнить, по второму комплекту из этого сообщения, для расширения кругозора. Если удалить из скрипта ucjsDownloadsManager полностью шапку со всякими пояснениями и историей версий, то в окне загрузок пропадают кнопка очистки загрузок и фиктивная строка поиска, а также пункт в панели меню Инструменты? Но опытным путём было выяснено, что обязательно наличие четырёх строк с содержанием ниже. В чём причина, почему наличие именно этих строк обязательно для нормальной работы этого скрипта, может из-за того что не требуется прописывать пути к запускаемым скриптам в этом методе или другая причина? Скрипт, перезалитый уже третий раз, для 71 в сообщении чуть выше.
Да, в 71 иконка конечно отвалилась в окне ucjsDownloadsManager.uc.js, но хоть пауза при нажатии работает. Виталий, может сделаете стиль для иконок, если не сильно хлопотно, а иконки я сам попытаюсь сделать или может из omni.ja достану. Спасибо.
Отсутствует