Нет ты писал И теперь при запуске браузера, особенно при первом запуске, а не про загрузку системы. Но это неважно, я сейчас сделал рестарт компа и запустил FF26, и кнопки на панели меню появляются без всяких чёрно-белые иконок.
Отредактировано bunda1 (26-01-2014 17:30:51)
Отсутствует
okkamas_knife
Я, кстати, когда опыты ставил, у меня выходило, что серверы обычно игнорируют конец Range, но там я запрашивал с первого байта, а не с самого начала.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Но это неважно, я сейчас сделал рестарт компа и запустил FF26, и кнопки на панели меню появляются без всяких чёрно-белые иконок.
Ну хорошо, раз уж только у меня такая беда, как с ней справиться?
Новый профиль помогает на очень короткое время.
Может тут помочь кнопка, которая как бы вместит в себя эти кнопки на панели меню, чтобы они были видны только при клике по ней (или маусовер), как раскрывающееся меню? А в остальное время эти кнопки как бы спрятаны.
Но я и кнопки такой не нашёл...
Отсутствует
Чайник
как вариант кнопка Popap-Toolbar!
var menu = <panel xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" onclick="this. parentNode. handleClick (event);"> <hbox> <toolbarbutton id="custombuttons-button9" label="Сохранить выделенное в файл" tooltiptext="Сохранить выделенное в файл" class="toolbarbutton-1 chromeclass-toolbar-additional" context="custombuttons-contextpopup" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMCSURBVDjLTdBNaFxVGMbx/zn33plOZjIT8zmGOnFM1VoNJYFWYi2CtVSMdKUbK+LKhSAGXYhd2m6FQkEXLbiwETcWiq3WpiiSBLRqTa122pEmMZPmw8lkMt93zrnnXhdJbB54l++Ph0cEQQDAm1/l9gOnHmnbMVzXPnXto32fhueXgAqwChigCBSAz4ErNpvxPe/pvcnY8PvPdbE9NeUn6spPFF2zU2moNA1zq1W+vVs7DIxuB3riIQFAbt3gCIEtwLIh7EhSYYklJY4Fgzsj9Cai7WeuLX4stwCjdTxqg+dDRQlKGtabUHI3rtCAf6sGgA/H5hlOR3mq0+mytwHtrSFJrQk11yClwAYsC6QFFgJLgA8IU+anmSLX50uL9wGlehIRi1LDo94MkDLAkiCNwJJgEbCj/AN/j3/G250D1CZ/5BWdHPsf8JTq64k7lNwADyAAywhksLF9vPI17WvXiAy8TiI9yPrs4zSunH1jW4NmXzIRJrNiEBIkG88SaKlcJuX8SezRA6zdzRASitZ4klhHKmEDvHjicsS2ZCjsSJQxSAIgIADCtSnS9i8k0kdoLn1JqEXwz/RttKsKbqP6jATwmqorLEBujkQAAohUJtglrpLofwl38QzCKeLEWtHVRV+Xl17Y9875rNys32LjY0uwpAAhMfOXSJmrJHYdxb33KdLRqPLDrEzc4PTC4dtD741PA8iDo2OdnlIn9u9OsVwOmFsxlLKXSOqf6X5yBLV8FisU0Cz3kZ/8ndzAR2Sq3TNb29lGqUPAyG+ZWYoNG2fhG14dyOP5vSzdPM0D3SHctYfITd1CHvqEhZyLUSq/BUij9dDLB56IfHF8hJOvPcYeLrLn2bcI5ybJXphi+rs17nx/g4n2D4i09VKp1jFaF+430Hp2ebXEufEMbbEI2Zk86q+LpPcepJQvcO/mDM8fv8CDoX7CNuTXKhitF7YAMXjsVCcwCvQBHf25k0eG0l1i3+60mFPR4HxuSLhOB/FohLZ4C3/cyWWBY9fPvfsrwH+7HFmMUqkOrwAAAABJRU5ErkJggg==" cb-oncommand="var text = getString();
if (text == "") {
 return;
} else {
 SaveText();
}



function SaveText() {
 var directoryService = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties);
 var desktopFolder = directoryService.get('Desk', Components.interfaces.nsIFile);
 var desktopPath = desktopFolder.QueryInterface(Components.interfaces.nsILocalFile).path;
 var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
 var fileName = getFileName();
 file.initWithPath(desktopPath);
 file.append(fileName);
 if (file && file.exists()) {
 pttlAppend(file);
 } else {
 saveDefault(file);
 }
}



function manipulateString(text) {
 var l = text.length;
 if (l == 0) return "";
 while (text[0] == " ") {
 text = text.slice(1, l);
 }
 l = text.length;
 while (text[l - 1] == " ") {
 text = text.slice(0, l - 1);
 l = text.length;
 }
 return text;
}



function getString() {
 var hlText = "";
 var focusedWindow = document.commandDispatcher.focusedWindow;
 hlText = focusedWindow.getSelection.call(focusedWindow);
 hlText = hlText.toString();
 hlText = manipulateString(hlText);
 return hlText;
}



function getPttlDivisor() {
 var now = new Date();
 var thisYear = now.getFullYear();
 var thisMonth = now.getMonth() + 1;
 var thisDate = now.getDate();
 var thisHours = now.getHours();
 var thisMinutes = now.getMinutes();
 var thisSeconds = now.getSeconds();
 var thisTime = new Array(thisYear, thisMonth, thisDate, thisHours, thisMinutes, thisSeconds);
 var webNav = getBrowser().webNavigation;
 var pttlTimeDiv = "";
 var winTitle = webNav.document.title;
 var winURL = webNav.currentURI.spec;
 for (var i = 0; i < 6; i++) {
 if (thisTime[i] < 10) thisTime[i] = "0" + thisTime[i];
 }
 pttlTimeDiv = pttlTimeDiv + winTitle + " - (" + winURL + ")";
 pttlTimeDiv = pttlTimeDiv + "\u000D\u000A" + thisTime[0] + "/" + thisTime[1] + "/" + thisTime[2] + " " + thisTime[3] + ":" + thisTime[4] + ":" + thisTime[5];
 pttlTimeDiv = pttlTimeDiv + "\u000D\u000A" + "----------------------------------\u000D\u000A\u000D\u000A";
 return pttlTimeDiv;
}



function getFileName() {
 var now = new Date();
 var thisYear = now.getFullYear();
 var thisMonth = now.getMonth() + 1;
 var thisDate = now.getDate();
 var thisTime = new Array(thisYear, thisMonth, thisDate);
 var pttlTime = "";
 for (var i = 0; i < 3; i++) {
 if (thisTime[i] < 10) thisTime[i] = "0" + thisTime[i];
 pttlTime = pttlTime + thisTime[i];
 if (i != 2) pttlTime = pttlTime + "-";
 }
 pttlTime = pttlTime + ".txt";
 return pttlTime;
}



function saveDefault(fileS) {
 var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
 var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream);
 var pttlDiv = getPttlDivisor();
 stream.init(fileS, 0x02 | 0x08 | 0x20, 0664, 0);
 converter.init(stream, "windows-1251", 0, 0x0000);
 converter.writeString(pttlDiv);
 converter.writeString(text);
 converter.close();
 stream.close();
}



function pttlAppend(fileA) {
 var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
 var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream);
 var pttlDiv = getPttlDivisor();
 stream.init(fileA, 0x02 | 0x10, 0664, 0);
 converter.init(stream, "windows-1251", 0, 0x0000);
 converter.writeString("\u000D\u000A\u000D\u000A\u000D\u000A" + pttlDiv);
 converter.writeString(text);
 converter.close();
 stream.close();
}" cb-init="/*Initialization Code*/" cb-mode="0"/> <toolbarbutton id="custombuttons-button10" label="Преобразование из латиницы в кириллицу и наоборот" tooltiptext="Преобразование из латиницы в кириллицу и наоборот" class="toolbarbutton-1 chromeclass-toolbar-additional" context="custombuttons-contextpopup" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADaSURBVHja7FXRDYIwEL1nGEBdBTaQDQyMQEcARymughOAIzDL+VEu9CoYE2Pxw/fzcrTkvbteryCylpmZNkKiQyCuPPOONkby7KmqYggDbUtEtHkFPAPGAEQAMPPQO2Z2XJR6fY3TTP8XsrULBnykmeauc1yc38vrsNexMbrJJV41IEIi3F6n7+UkcPzCEfiQRuxu2ki4Po7SujoOISWXfXWjFudBJBlKvMZD/zqvPNf7l26W0w0qkJ8c3wd9ZsLNZblHPriOugJA3DnwA5PwbyAJXwKZ0bHwGAAE21lZASOQtgAAAABJRU5ErkJggg==" cb-oncommand="this.switchSelKeybLayout();" cb-init="this.noSelUseFullText = true;
this.convTableForward = {
 "\"": "@",
 ":": "^",
 ";": "$",
 "?": "&",
 ",": "?",
 "/": "|",
 ".": "/",
 "э": "'",
 "б": ",",
 "ю": ".",
 "Ж": ":",
 "ж": ";",
 "Б": "<",
 "Ю": ">",
 "Э": "\"",
 "х": "[",
 "ъ": "]",
 "ё": "`",
 "Х": "{",
 "Ъ": "}",
 "Ё": "~",
 "№": "#",
 "Ф": "A",
 "ф": "a",
 "И": "B",
 "и": "b",
 "С": "C",
 "с": "c",
 "В": "D",
 "в": "d",
 "У": "E",
 "у": "e",
 "А": "F",
 "а": "f",
 "П": "G",
 "п": "g",
 "Р": "H",
 "р": "h",
 "Ш": "I",
 "ш": "i",
 "О": "J",
 "о": "j",
 "Л": "K",
 "л": "k",
 "Д": "L",
 "д": "l",
 "Ь": "M",
 "ь": "m",
 "Т": "N",
 "т": "n",
 "Щ": "O",
 "щ": "o",
 "З": "P",
 "з": "p",
 "Й": "Q",
 "й": "q",
 "К": "R",
 "к": "r",
 "Ы": "S",
 "ы": "s",
 "Е": "T",
 "е": "t",
 "Г": "U",
 "г": "u",
 "М": "V",
 "м": "v",
 "Ц": "W",
 "ц": "w",
 "Ч": "X",
 "ч": "x",
 "Н": "Y",
 "н": "y",
 "Я": "Z",
 "я": "z",
 __proto__: null
};

this.convTableBackward = { __proto__: null };
for(var c in this.convTableForward)
 this.convTableBackward[this.convTableForward[c]] = c;

this.insertText = function(ta, text, noFocus) {
 var editor = ta.QueryInterface(Components.interfaces.nsIDOMNSEditableElement)
 .editor
 .QueryInterface(Components.interfaces.nsIPlaintextEditor);
 if(editor.flags & editor.eEditorReadonlyMask)
 return;

 var sTop = ta.scrollTop;
 var sHeight = ta.scrollHeight;
 var sLeft = ta.scrollLeft;
 // var sWidth = ta.scrollWidth;

 if(noFocus) {
 var val = ta.value;
 var ss = ta.selectionStart;
 ta.value = val.substring(0, ss) + text + val.substring(ta.selectionEnd);
 var se = ss + text.length;
 ta.selectionStart = se;
 ta.selectionEnd = se;
 }
 else {

 if(text)
 editor.insertText(text);
 else
 editor.deleteSelection(0);
 }

 ta.scrollTop = sTop + (ta.scrollHeight - sHeight);
 ta.scrollLeft = sLeft; // + (ta.scrollWidth - sWidth);
};
this.inPrimaryLayout = function(s) {
 var c;
 for(var i = 0, l = s.length; i < l; i++) {
 c = s.charAt(i);
 if(c in this.convTableForward)
 return true;
 if(c in this.convTableBackward)
 return false;
 }
 return false;
};
this.switchKeybLayout = function(convTable, s) {
 var r = "", c;
 for(var i = 0, l = s.length; i < l; i++) {
 c = s.charAt(i);
 r += c in convTable ? convTable[c] : c;
 }
 return r;
};
this.switchSelKeybLayout = function(s) {
 try {
 var ta = document.commandDispatcher.focusedElement;
 var val = ta.value;
 var sel = val.substring(ta.selectionStart, ta.selectionEnd);
 }
 catch(e) {
 return;
 }
 if(this.noSelUseFullText && !sel) {
 ta.selectionStart = 0;
 ta.selectionEnd = val.length;
 sel = val;
 }
 if(!sel)
 return;

 sel = this.switchKeybLayout(
 this.inPrimaryLayout(sel) ? this.convTableForward : this.convTableBackward,
 sel
 );
 this.insertText(ta, sel);
};" cb-accelkey="F8" cb-mode="0"/> </hbox> </panel>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); if (!url) return; if (event. button == 0) loadURI (url); else if (event. button == 1) gBrowser. addTab (url); this. open = false; };
Отсутствует
Чайник
Ну тут много вариантов, например: переместить CB кнопки с панели меню на панель дополнений + Спрятать панель дополнений ( Firefox 17+)
Добавлено 26-01-2014 21:21:48
okkamas_knife
Спасибо за разъяснения
Отредактировано bunda1 (26-01-2014 21:21:48)
Отсутствует
Чайник
как вариант кнопка Popap-Toolbar!
Я эту кнопку установил, вытащил на панель меню, но:
1. Она неактивна
2. Как в неё вложить те кнопки, что я хочу спрятать?
Чайник
Ну тут много вариантов, например: переместить CB кнопки с панели меню на панель дополнений + Спрятать панель дополнений ( Firefox 17+)
Я уже как-то привык что кнопки у меня в самом верху, с панелью дополнений мне будет не удобно.
А может эта бяка с иконками быть из-за слабого железа?
Отсутствует
Как в неё вложить те кнопки, что я хочу спрятать?
через настройку панелей инструментов нужно создать панель с именем MButtons и переместить на неё требуемые кнопки
а сама кнопка Popap-Toolbar! скроет эту панель и будет раскрывать в сокращенном виде
но у нее тоже есть некоторые недостатки с которыми ты можешь столкнуться...
Отредактировано Inko7 (26-01-2014 22:11:32)
Отсутствует
Отсутствует
Button Stacker интересный вариант! жаль, что только ЛКМ по кнопкам можно использовать
У меня есть экспериментальная кнопка Merge Custom Buttons, но спрятанные в нее кнопки 1) заново инициализируются и 2) могут не работать.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
кто мешает создать панель набить её кнопками и потом другой кнопкой просто скрывать-показывать эту панель?
Кстати вот мешают, да – внедряльщики Australis'а.
Хотя, наверное, расширение кто-нибудь сделает.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Кстати в Firefox Holly(без Австралиса) созданная панель тоже глючит, при запуске браузера постоянно показывается, снимай галку не снимай, без толку.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
можно ли как-нибудь справиться с проблемой в коде кнопки
var url = window._content.document.location.href; var chkpoint='/'; var arrayOfStrings = url.split(chkpoint); var domenname=arrayOfStrings[2]; var summa="http://urlshpion.ru/www."+domenname+""; getBrowser (). selectedTab = getBrowser (). addTab (summa);
Отсутствует
vitalii201
function urlshpionRu(locObj) { var searchUrl = "http://urlshpion.ru/www."; var hostName = locObj.hostname; if (/^w{3}[0-9]?\.?/.test(hostName)) hostName = hostName.replace(/^(w{3}[0-9]?\.)?/, ""); var urlLink = searchUrl + hostName; gBrowser.loadOneTab(urlLink, { relatedToCurrent: true, inBackground: false }); } var locObj = content.location; if (locObj && /^(ht|f)tps?:\/\/.*/.test(locObj.href)) urlshpionRu(locObj);
Отсутствует
2k1dmg, спасибо!
Отсутствует
bunda1 пишет:
Ну тут много вариантовА какие ещё есть варианты кроме панели дополнений?
Вот вариант:
В userChrome.css:
#toolbar-menubar:not([showCB]) toolbarbutton[id^="custombuttons-button"] { display: none !important; }
И в любую кнопку в инициализацию:
setTimeout(function() { document.getElementById('toolbar-menubar').setAttribute('showCB', true); }, 7000);
Стиль удалит CB кнопки из панели меню при старте браузера а CB код покажет через 7 секунд.
Отсутствует
Увы, но похоже указанная проблема с двойной инициализацией кнопок в SeaMonkey в версии 0.0.5.7 расширения действительно имеет место быть.
Также хочу обратить внимание на вот это сообщение Infocatcher. Было бы, наверное, очень хорошо, если бы у расширения была возможность работы с параметрами about:config.
Отсутствует
Увы, но похоже указанная проблема с двойной инициализацией кнопок в SeaMonkey в версии 0.0.5.7 расширения действительно имеет место быть.
Можно узнать: как вы это определили(не Dumby , а именно вы)
Также хочу обратить внимание на вот это сообщение Infocatcher. Было бы, наверное, очень хорошо, если бы у расширения была возможность работы с параметрами about:config.
Как говорится, - возможны вилы или у каждой палки два конца. Представьте: каждая кнопка будет гадить подобно расширениям в about:config. Для примера посмотрите кнопку [CB]Toggle Find+3 | Форум Mozilla Россия - она уже это делает.
Отредактировано SendInfo (30-01-2014 04:36:20)
Отсутствует
Можно узнать: как вы это определили(не Dumby , а именно вы)
Поставить в инициализацию любой кнопки alert("1"); и сделать рестарт и alert сработает 2 раза.
Отсутствует
SendInfo
Можно узнать: как вы это определили(не Dumby , а именно вы)
Так, что у меня те же самые явления, что у feas.
bunda1
Поставить в инициализацию любой кнопки alert("1"); и сделать рестарт и alert сработает 2 раза.
И это тоже.
Кстати, спасибо за совет! Я так понимаю, этот код надо в самое начало инициализации каждой кнопки вставлять?
SendInfo
Представьте: каждая кнопка будет гадить подобно расширениям в about:config.
Почему обязательно гадить? Хранить параметры, чтобы не нужно было каждый раз код при обновлении править.
Отсутствует
Как узнать где относительно изображения на странице открылось его контекстное меню над изображением или под ним. Пытаюсь определить по стилю через getComputedStyle(e.target.parentNode, '') но не знаю нужного CSS свойства:
var contextMenu = document.getElementById("contentAreaContextMenu"); addEventListener("popupshowing", function(e) { alert( getComputedStyle(e.target.parentNode, '') ); }, false, contextMenu);
Отсутствует