var s = 'network.proxy.type'; function toggleImage() { var state = cbu.getPrefs( s ); var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon"); if ( state==0 ) { icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC'; this.checked = false; this.tooltipText = "Параметры соединения\nБез прокси"; return; } if ( state==1 ) { icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII='; this.checked = true; var pxadr = cbu.getPrefs("network.proxy.http"); var pxprt = cbu.getPrefs("network.proxy.http_port"); this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt; return; } if ( state==2 ) { icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC'; this.checked = true; var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url") this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf; return; } if ( state==4 ) { icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC'; this.checked = true; this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети"; return; } if ( state==5 ) { icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII='; this.checked = true; this.tooltipText = "Параметры соединения\nСистемные настройки прокси"; } }; this.onload = function() { toggleImage() }; gPrefService.addObserver( s, toggleImage, false ); addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) }); // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.target.localName !== 'toolbarbutton' ) return; // действие при клике ЛКМ .... if ( e.button == 0 ) { openConnections(); }; // действие при клике СКМ .... if ( e.button == 1 ) { var curstate = cbu.getPrefs( s ); if (curstate==0) cbu.setPrefs(s,1); if (curstate==1) cbu.setPrefs(s,2); if (curstate==2) cbu.setPrefs(s,4); if (curstate==4) cbu.setPrefs(s,5); if (curstate==5) cbu.setPrefs(s,0); }; // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true ); this.appendChild( cloneMenu ); }; this.lastChild.tooltipText = ''; this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" ); } }; // Функция открывает настройки прокси в окне ................................ function openConnections() { var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null); while( windows.hasMoreElements() ) { var win = windows.getNext(); if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") { win.focus(); return; } }; var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no"); // добавить атрибут "prefwindow" win.addEventListener("load", function(e) { this.removeEventListener("load", arguments.callee, true); e.target.documentElement.setAttribute("type", "prefwindow"); }, true); // закрыть настройки прокси по клику на странице gBrowser.addEventListener("click", function c() { this.removeEventListener("click", c ); try { win.close() } catch(e) {}; }); };
Отредактировано lmiol (13-10-2013 20:25:57)
Отсутствует
этот код верно?
Верно но очень скверно, попробуй:
Отредактировано bunda1 (13-10-2013 20:30:02)
Отсутствует
lmiol пишет: этот код верно?Верно но очень скверно, попробуй:Выделить кодКод:setTimeout(function() { toggleImage() }, 1000);
Отредактировано bunda1 (Сегодня 18:30:02)
пробовал и так - все равно не хочет
http://www.youtube.com/watch?v=hbtvHDZfhW0
также возвращается иконка после повторного редактирования кнопки
Отредактировано lmiol (13-10-2013 20:53:05)
Отсутствует
Да, так работает, спасибо!
Но почему не работает этот вариант - через присваивание свойства onmousedown (или onclick, не суть важно)?
То есть работает, но вместе с нужным действием происходит и дефолтное, preventDefault() и stopPropagation() не помогают.
Добавлено 13-10-2013 22:00:45
пробовал и так - все равно не хочет
также возвращается иконка после повторного редактирования кнопки
Это не может быть!
Что показывает консоль ошибок после настройки панелей?
Добавлено 13-10-2013 22:05:53
Установи иконку для кнопки.
Отредактировано bunda1 (13-10-2013 22:05:53)
Отсутствует
Это не может быть!
Что показывает консоль ошибок после настройки панелей?Добавлено Сегодня 20:05:53
Установи иконку для кнопки.
Это не может быть!
Что показывает консоль ошибок после настройки панелей?Добавлено Сегодня 20:05:53
Установи иконку для кнопки.
иконка установлена (на видео видно)
консоль ошибок чистый
заодно хотел спросить в каком файле самого ФФ находится код с этим меню (Настройки, Панель Меню, Панель Навигации....)
обыскался найти не могу
Отредактировано lmiol (14-10-2013 01:53:35)
Отсутствует
кстати могу дать portable firefox 3.6.28 который я ковыряю дабы вы потестили, если конечно вам охота поковыряться в проблеме
Отредактировано lmiol (14-10-2013 13:58:46)
Отсутствует
Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет
Ну или в userChrome.css:
Отсутствует
bunda1 пишет: Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет Ну или в userChrome.css:Выделить кодКод:#custombuttons-contextpopup {
display: none !important;
}
cпс, я как раз исходя из этого догадался что тут мона выключить http://img407.imageshack.us/img407/3825/bhtu.png
#toolbar-context-menu {display: none !important;}
но если bunda1 подскажет как сделать не пропадание иконок у кнопок Кастом баттонс, то можно будет оставить с этого меню пункт меню Настроек и Панель навигации, а кнопку Панель навигации прикрутить на строку состояния
и знаю что вот этот вопрос не по теме но всёже....
как из ниже описанного кода сделать так чтобы в нем было не его меню а стандартное http://img407.imageshack.us/img407/3825/bhtu.png
(чтобы при отключении/редактировании toolbar-context-menu с этой кнопки также отключалась/менялась менюха )
я пытался подобрать с других кодов но чтото не вышло
<window id="main-window"> <popupset id="secureLoginPopUpSet"> <tooltip id="secureLoginTooltip" onpopupshowing="secureLogin.tooltip(event);" orient="vertical" /> <menupopup id="secureLoginContextmenu" onpopupshowing="secureLogin.contextMenu(event);" position="after_start"> <menu id="secureLoginContextAutofillFormsMenu" label="&autofillformsmenu.label;" class="menu-iconic autofillFormsIcon" hidden="true"> </menu> <menuseparator id="secureLoginContextAutofillFormsMenuSeparator" hidden="true" /> <menuitem id="secureLoginOptionsContextItem" label="&menuoptions.label;" oncommand="secureLogin.showDialog('chrome://secureLogin/content/secureLoginOptions.xul');" /> <menuseparator/> <menuitem id="secureLoginPasswordsContextItem" label="&menupasswords.label;" oncommand="secureLogin.showPasswordManager();" /> <menuitem id="secureLoginPasswordsExceptionsContextItem" class="minVersion2" label="&menupassexceptions.label;" oncommand="secureLogin.showDialog('chrome://passwordmgr/content/passwordManagerExceptions.xul');" /> </menupopup> <menupopup id="secureLoginUserSelectionPopup" position="after_start" onpopuphiding="while(this.hasChildNodes()){this.removeChild(this.firstChild);}" /> </popupset> </window>
Отредактировано lmiol (14-10-2013 16:25:51)
Отсутствует
Можно это
saveImageURL(event.dataTransfer.getData("application/x-moz-file-promise-url"), 0, 0, 0, 1, null, content.document);
заменить на это https://developer.mozilla.org/en-US/doc … Document() с указанием места сохранения
Вообще так можно и где можно почитать об этом на русском, ибо гугл выдает всякую фигню.
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
кстати могу дать portable firefox 3.6.28 который я ковыряю дабы вы потестили, если конечно вам охота поковыряться в проблеме
Архив не открывается, и этот код Вчера 19:25:32 на portable firefox 3.6.28 не должен работать я то думал у тебя FF9. В таких не понятных случаях надо скачивать чистую FF от Localization | PortableApps.com - Portable software for USB, portable and cloud drives и проверять кнопку на нём и сразу станет ясно где проблема в кнопке или в твоей сборке.
Добавлено 14-10-2013 19:03:24
Можно это ...
заменить на это ... с указанием места сохранения
Можно тут 08-05-2011 17:52:05 поковырять, тут есть подобное.
Отредактировано bunda1 (14-10-2013 19:03:24)
Отсутствует
// Добавить адрес наверху страницы и открыть диалог сохранения страницы ................................ function savePage() { var sURL = gURLBar.value; content.document.body.innerHTML = "<table width=100%><tr><td align=left><small><a target=_blank href=" + sURL + ">"+ sURL + "</a></small>\n</td></tr></table>" + content.document.body.innerHTML; saveDocument(window.content.document); };
это с диалогом, а нужно без диалога в уже готовую папку.
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
это с диалогом, а нужно без диалога в уже готовую папку.
Вот
// Сохранить в указаную папку иконку таба как .ico и без диалога сохранения .........................
function saveFaviconToFolder( faviconName ) { ......
или
// Сохранить ярлык страницы в указанную папку или в последнюю папку сохранения ....................
function saveShortcuts( saveAs ) { .....
Отредактировано bunda1 (14-10-2013 19:38:40)
Отсутствует
function saveFaviconToFolder( faviconName ) { ...... я так понимаю рисует заново изображение через canvas
function saveShortcuts( saveAs ) { ..... изображение сохраняется через saveFaviconToFolder
Вообще не могу читать этот код. Проще уже взять это http://forum.mozilla-russia.org/viewtop … 64#p518464 и запускать
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
W@ld_Lii
Самое простое перед сохранением изображения менять папку загрузки на нужную и потом обратно:
var img = event.dataTransfer.getData("application/x-moz-file-promise-url"); Application.prefs.setValue("browser.download.dir", "C:\\Documents and Settings\\Администратор\\Рабочий стол\\" +(new Date().toLocaleFormat("%d.%m.%Y")) ); saveImageURL( img, 0, 0, 0, 1, null, content.document);
Добавлено 14-10-2013 22:22:37
А если так:
// Сохранить изображение без запроса двойным правым кликом .... function handleDblClick(e) { if ( e.button == 2 && e.target.localName == 'img' ) { var path = "C:\\Documents and Settings\\Администратор\\Рабочий стол\\" + new Date().toLocaleFormat("%d.%m.%Y"); const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath( path ); if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777); Application.prefs.setValue("browser.download.dir", path ); setTimeout(function() { try { saveImageURL( gContextMenu.imageURL, 0, 0, 0, 1, null, content.document ) } catch(e) {}; document.getElementById("contentAreaContextMenu").hidePopup() }, 100); } }; addEventListener("dblclick", handleDblClick, false, gBrowser );
Добавлено 14-10-2013 22:24:11
Укажи свой путь для path
Отредактировано bunda1 (14-10-2013 22:24:11)
Отсутствует
и этот код Вчера 19:25:32 на portable firefox 3.6.28 не должен работать я то думал у тебя FF9. В таких не понятных случаях надо скачивать чистую FF от Localization | PortableApps.com - Portable software for USB, portable and cloud drives и проверять кнопку на нём и сразу станет ясно где проблема в кнопке или в твоей сборке.
Архив не открывается,
я перекачал открывается.
моя сборка ничем не отличается от чистой, за исключением что я скомпилировал исходники с параметром StrCpy $ADDITIONALPARAMETERS "-no-remote -profile portable"
чтобы можно было открывать этот фф с своим профилем если уже запущен другой фф (может этот параметр еще на чтото влияет), а то раньше открывался тот фф что уже открыт а портебл версия не реагировала.
сейчас попробую с оригинальным файлом проделать всё тоже самое.
Добавлено 14-10-2013 22:44:33
вот сырая с оффсайта http://freefr.dl.sourceforge.net/projec … an.paf.exe
я использовал код без последних правок для изображений и сокращений (может зря конечно) вот что вышло http://youtu.be/GxImzWEzmJk
this.pref = 'network.proxy.type'; this.setState = function() { var state = cbu.getPrefs( this.pref ); if ( state==0 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC'; this.checked = false; this.tooltipText = "Параметры соединения\nБез прокси"; return; } if ( state==1 ) { this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII='; this.checked = true; var pxadr = cbu.getPrefs("network.proxy.http"); var pxprt = cbu.getPrefs("network.proxy.http_port"); this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt; return; } if ( state==2 ) { this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC'; this.checked = true; var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url") this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf; return; } if ( state==4 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC'; this.checked = true; this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети"; return; } if ( state==5 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII='; this.checked = true; this.tooltipText = "Параметры соединения\nСистемные настройки прокси"; } } this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); this.ob = {}; this.ob.observe = this.setState.bind(this); this.PS.addObserver( this.pref, this.ob, false); this.setState(); // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.target.localName !== 'toolbarbutton' ) return; // действие при клике ЛКМ .... if ( e.button == 0 ) { openConnections(); }; // действие при клике СКМ .... if ( e.button == 1 ) { var curstate = cbu.getPrefs(this.pref); if (curstate==0) cbu.setPrefs(this.pref,1); if (curstate==1) cbu.setPrefs(this.pref,2); if (curstate==2) cbu.setPrefs(this.pref,4); if (curstate==4) cbu.setPrefs(this.pref,5); if (curstate==5) cbu.setPrefs(this.pref,0); }; // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true ); this.appendChild( cloneMenu ); }; this.lastChild.tooltipText = ''; this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" ); } }; // Функция открывает настройки прокси в окне ............................................................... function openConnections() { var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null); while( windows.hasMoreElements() ) { var win = windows.getNext(); if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") { win.focus(); return; } }; var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no"); // добавить атрибут "prefwindow" win.addEventListener("load", function(e) { this.removeEventListener("load", arguments.callee, true); // удалить обработчик e.target.documentElement.setAttribute("type", "prefwindow"); }, true); // закрыть настройки прокси по клику на странице gBrowser.addEventListener("click", function c() { this.removeEventListener("click", c ); try { win.close() } catch(e) {}; }); };
Отредактировано lmiol (14-10-2013 22:52:42)
Отсутствует
Делаю так
var img = event.dataTransfer.getData("application/x-moz-file-promise-url"); var path = "/home/wl/" + new Date().toLocaleFormat("%d.%m.%Y"); const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath( path ); if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777); Application.prefs.setValue("browser.download.dir", path ); saveImageURL( img, 0, 0, 0, 1, null, content.document);
папка создаётся, а вот изображение не сохраняет.
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
я прекрасно понимаю что никто мне ничего не обязан, все что вы делаете это на добровольной основе: есть желание написал, нет желания забросил в топку.
но сотни игроков ждут удобной сборки поэтому я пытаюсь быть таким настойчивым. (кстати раздача моя здесь, ны бывшем торрентс.ру прожила уже 4 года с копейками, там есть история версий )
кстати уже который раз убеждаюсь что:
if ( !this.lastChild ) { var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true ); this.appendChild( cloneMenu ); }; this.lastChild.tooltipText = ''; this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" ); }
както относится к проблеме, если убрать это меню то в любом из кодов иконка не пропадает, если добвить - пропадает. (независимо в каком коде и как прописана иконка)
а может можно это же меню както назначить в userchrome.css? для всех кнопок от кастомбаттонс
Отредактировано lmiol (14-10-2013 23:20:06)
Отсутствует
Делаю так
папка создаётся, а вот изображение не сохраняет.
Таймер нужен.
Добавлено 14-10-2013 23:22:03
я прекрасно понимаю что никто мне ничего не обязан, все что вы делаете это на добровольной основе: есть желание написал, нет желания забросил в топку.
А зачем там меню?
Добавлено 14-10-2013 23:43:04
кстати уже который раз убеждаюсь что:
..... как то относится к проблеме, если убрать это меню то в любом из кодов иконка не пропадает, если добвить - пропадает. (независимо в каком коде и как прописана иконка)
this.pref = 'network.proxy.type'; this.setState = function() { var state = cbu.getPrefs( this.pref ); if ( state==0 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC'; this.checked = false; this.tooltipText = "Параметры соединения\nБез прокси"; return; } if ( state==1 ) { this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII='; this.checked = true; var pxadr = cbu.getPrefs("network.proxy.http"); var pxprt = cbu.getPrefs("network.proxy.http_port"); this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt; return; } if ( state==2 ) { this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC'; this.checked = true; var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url") this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf; return; } if ( state==4 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC'; this.checked = true; this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети"; return; } if ( state==5 ) { this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII='; this.checked = true; this.tooltipText = "Параметры соединения\nСистемные настройки прокси"; } } this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); this.ob = {}; this.ob.observe = this.setState.bind(this); this.PS.addObserver( this.pref, this.ob, false); this.setState(); // Создать меню для кнопки ................................ var node = document.getElementById(_id + "-menuPopup"); if ( node ) node.parentNode.removeChild(node); // блокировать дублирование меню var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true ); var menuPopup = document.getElementById("mainPopupSet").appendChild( cloneMenu ); menuPopup.id = _id + "-menuPopup"; // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.target.localName !== 'toolbarbutton' ) return; // действие при клике ЛКМ .... if ( e.button == 0 ) { openConnections(); }; // действие при клике СКМ .... if ( e.button == 1 ) { var curstate = cbu.getPrefs(this.pref); if (curstate==0) cbu.setPrefs(this.pref,1); if (curstate==1) cbu.setPrefs(this.pref,2); if (curstate==2) cbu.setPrefs(this.pref,4); if (curstate==4) cbu.setPrefs(this.pref,5); if (curstate==5) cbu.setPrefs(this.pref,0); }; // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menuPopup.showPopup( this, -1, -1, "popup", "bottomleft", "topleft" ); } }; // Функция открывает настройки прокси в окне ............................................................... function openConnections() { var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null); while( windows.hasMoreElements() ) { var win = windows.getNext(); if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") { win.focus(); return; } }; var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no"); // добавить атрибут "prefwindow" win.addEventListener("load", function(e) { this.removeEventListener("load", arguments.callee, true); // удалить обработчик e.target.documentElement.setAttribute("type", "prefwindow"); }, true); // закрыть настройки прокси по клику на странице gBrowser.addEventListener("click", function c() { this.removeEventListener("click", c, false ); try { win.close() } catch(e) {}; }, false ); };
Кстати настройки прокси можно закрыть кликом на странице.
Отредактировано bunda1 (14-10-2013 23:44:45)
Отсутствует
добавил
var img = event.dataTransfer.getData("application/x-moz-file-promise-url"); var path = "/home/wl/" + new Date().toLocaleFormat("%d.%m.%Y"); const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath( path ); if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777); Application.prefs.setValue("browser.download.dir", path ); setTimeout(function() { saveImageURL( img, 0, 0, 0, 1, null, content.document) }, 100);
но эффекта нет
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
А зачем там меню?
вы абсолютно правы что оно в принципе там не нужно, по крайней мере сейчас.
но.... в будущем если будут идеи относительно дополнительных кнопок которые пригодятся именно для игры, то возможность выставлять их как бы нужна.
с самого меню мне нужны только пункты Панель навигации и настройки. но как я писал выше можно обойтись #toolbar-context-menu {display: none !important;}
но тогда нужно сделать 2 кнопочки на статус бар (1ая открывает/закрывает навигационную панель, вторая открывает настйроки нав панели, но тогда это отдалит пользователя от привычного использования firefox, тогда лучше #toolbar-context-menu {display: none !important;} и сделать лишь кнопку toggle навигационную панель на статус бар, кстати я нашел аддонHide Navigation barправда в нем много лишнего, требуется всего лишь кнопка в виде картинки в двух позициях он/офф на статусбаре отключающая/включающая навигационную панель + на F12 клавишу тот же еффект.
Кстати настройки прокси можно закрыть кликом на странице.
вы починили проблему . этот код не сбрсывает иконку.
зы я уже спрашивал выше
вы не вкурсе где в файлах фф находится toolbar-context-menu чтобы можно было отредактировать пункты, я искал искал так и не нашел.
сейчас еще поищу мб удача улыбнется.
Отсутствует
bunda1, работает, но только при условии, если не стоит "Всегда выдавать запрос на сохранение".
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
bunda1, работает, но только при условии, если не стоит "Всегда выдавать запрос на сохранение".
Да, ну тогда хорошо.
Добавлено 15-10-2013 20:17:17
вы не вкурсе где в файлах фф находится toolbar-context-menu чтобы можно было отредактировать пункты, я искал искал так и не нашел.
сейчас еще поищу мб удача улыбнется.
Можно редактировать через userChrome
Уроки стилистики (CSS) | Форум Mozilla Россия
Отредактировано bunda1 (15-10-2013 20:27:10)
Отсутствует