Полезная информация

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

№1290108-10-2018 20:14:01

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4709
UA: Firefox 24.0

Re: Custom Buttons

Из за технических проблем скрина нет и я проверял это только на FF60.

Отсутствует

 

№1290208-10-2018 20:23:38

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 129
UA: Firefox 56.0

Re: Custom Buttons

drage2 пишет:

Странно, не замечал ....Скрина нема?

На более старых версиях [firefox], при загрузке страницы, на вкладке отображалось слово "Соединение…":
https://i.postimg.cc/C5NxmFH1/tab_01.png
Начиная с пятьдесят каких-то версий [firefox], при загрузке страницы, на вкладке стал отображаться URL загружаемой страницы:
https://i.postimg.cc/PrPg6XMR/tab_02.png
Это выглядит особенно убого, если в URL присутствует кириллица.


ADD:
В версиях [firefox] 60+ это можно решить стилем:

скрытый текст

Выделить код

Код:

/* Код Vitaliy V. */
#TabsToolbar .tabbrowser-tab .tab-content .tab-label-container::before {
    content: "Соединение…" !important;
    display: -moz-box !important;
    visibility: collapse !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    white-space: nowrap !important;
    line-height: 1.7em !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    pointer-events: none !important;
    color: inherit !important;
    text-shadow: inherit !important;
}
#TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-label-container::before {
    visibility: visible !important;
}
#TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-text.tab-label {
    visibility: collapse !important;
}


Или так:
скрытый текст

Выделить код

Код:

/* Код Vitaliy V. */
#TabsToolbar .tabbrowser-tab .tab-content .tab-label-container::before {
    content: "" !important;
    display: -moz-box !important;
    visibility: collapse !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    white-space: nowrap !important;
    line-height: 1.7em !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    pointer-events: none !important;
    color: inherit !important;
    text-shadow: inherit !important;
}
#TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-label-container::before {
    content: "Соединение…" !important;
    visibility: visible !important;
}
#TabsToolbar .tabbrowser-tab[progress="true"] .tab-content .tab-label-container::before {
    content: "Соединение…" !important;
    visibility: visible !important;
}
#TabsToolbar .tabbrowser-tab:-moz-any([busy="true"],[progress="true"]) .tab-content .tab-text.tab-label {
    visibility: collapse !important;
}


Но на версиях [firefox] 55-56 и на последних версиях Waterfox этот стиль подглючивает на некоторых страницах, где есть комментарии от Disqus'а.

Отредактировано unter_officer (08-10-2018 21:50:00)

Отсутствует

 

№1290309-10-2018 00:10:21

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 214
UA: Firefox 62.0

Re: Custom Buttons

unter_officer

unter_officer пишет:

Это выглядит особенно убого, если в URL присутствует кириллица.

А, где сайт с кириллицей, смотреть на надпись "соединение", тоже большого энтузиазма не вызывает....Так хоть видно что загружается.

Отсутствует

 

№1290409-10-2018 01:01:44

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 129
UA: Firefox 47.0

Re: Custom Buttons

drage2 пишет:

смотреть на надпись "соединение", тоже большого энтузиазма не вызывает...

Каждый вправе выбирать...
Вам не нравится смотреть на слово "Соединение…", мне не нравится смотреть на URL.
И если кто-то мне подскажет решение, как с помощью СВ вернуть старое состояние, что бы при загрузке страницы на вкладке снова отображалось слово "Соединение…", Вы вправе этим решением не пользоваться.

Отсутствует

 

№1290512-10-2018 05:39:04

Dobrov
Участник
 
Группа: Members
Откуда: Irkutsk
Зарегистрирован: 04-10-2011
Сообщений: 41
UA: unknown 0.0

Re: Custom Buttons

Подскажите, как сохранить все изображения со страницы в папку загрузки? Есть готовые кнопки или код?
Желательно сохранять не все картинки, а например, размером более 200 пикселей, как это делает расширение Pick Images.

Есть код сохранения одной картинки, параметр: перетаскиваемая картинка или контекстное меню изображения

Выделить код

Код:

window.SavePic = function( image ) {
    try { var Upload = Services.downloads.userDownloadsDirectory.path } // каталог загрузок
    catch(e) { var Upload = Services.downloads.defaultDownloadsDirectory.path }; // ограничить длину имени
    var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).replace(/[:\\\/<>?*|"]+/g,' ').replace(/\s+/g,' ').replace(/  /g,' ').slice(0,88);
    var path = Upload + '/_Images/' + docTitle; // новый путь записи
    var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
    file.initWithPath(path);
    if ( !file.exists() || !file.isDirectory() ) file.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // если нет папки
    cbu.setPrefs("browser.download.dir", window.convertFromUnicode("UTF-8", path));
    saveImageURL(image, 0, 0, 0, 1, null, content.document);
    cbu.setPrefs("browser.download.dir", window.convertFromUnicode("UTF-8", Upload)); // вернуть старый путь
    XULBrowserWindow.statusTextField.label = '… '+ docTitle;
    setTimeout(()=> XULBrowserWindow.statusTextField.label = '', 3000);
    return path; // путь записи
};

window.convertFromUnicode = function (charset, str) { // Конвертировать текст в юникод
    var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
    converter.charset = charset;
    str = converter.ConvertFromUnicode(str);
    return str + converter.Finish();
};

Отредактировано Dobrov (12-10-2018 08:56:04)

Отсутствует

 

№1290613-10-2018 20:44:17

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 218
UA: Firefox 56.0

Re: Custom Buttons

Есть код позволяющий написать нужный текст в statubar?
Я имею в виду внизу, где отображается url ссылки.

Отсутствует

 

№1290714-10-2018 03:46:34

Dobrov
Участник
 
Группа: Members
Откуда: Irkutsk
Зарегистрирован: 04-10-2011
Сообщений: 41
UA: unknown 0.0

Re: Custom Buttons

toxa

Выделить код

Код:

window.statusTextField = function (text, time) {    // Показ сообщения в строке статуса
    XULBrowserWindow.statusTextField.label = text;
    time = time || 3000; // аргумент функции не указан
    setTimeout(()=> XULBrowserWindow.statusTextField.label = "", time);
};
window.statusTextField("Сообщение в строке статуса");

Отсутствует

 

№1290815-10-2018 09:41:48

Dobrov
Участник
 
Группа: Members
Откуда: Irkutsk
Зарегистрирован: 04-10-2011
Сообщений: 41
UA: unknown 0.0

Re: Custom Buttons

Посоветуйте, как на кнопке-меню открыть .appendChild меню правым кликом мыши, а не левым? (на него нужно более часто используемое действие)
если убрать: setAttribute('onclick', 'getDocEncoding();'), всё равно меню открывается, а это нужно только по правой кнопке.

Сменить кодировку

Выделить код

Код:

var ddMenu =
'<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\
       oncommand="this.parentNode.setDocEncoding(event)">\n\
    <menuitem type="radio" charset="KOI8-R" label="Кириллица (KOI8-R)"/>\n\
    <menuitem type="radio" charset="windows-1251" label="Кириллица (Windows-1251)"/>\n\
    <menuitem type="radio" charset="UTF-8" label="Unicode (UTF-8)"/>\n\
</menupopup>';
ddMenu = new DOMParser().parseFromString(ddMenu,"application/xml").documentElement;
this.type = "menu"; this.orient = "horizontal";
document.getAnonymousElementByAttribute(this, "class", "toolbarbutton-menu-dropmarker").hidden = true;
this.appendChild(ddMenu);
this.setDocEncoding = function(evt) {
    var _charset = evt.target.getAttribute("charset");
    try { SetForcedCharset(_charset);
    } catch(e) { BrowserSetForcedCharacterSet(_charset);
    }
}
getDocEncoding = function() {
    var docCharset = getBrowser().docShell.QueryInterface(Components.interfaces.nsIDocCharset);
    var curChar = docCharset.charset;
    switch (curChar) {
        case "KOI8-R": ddMenu.childNodes[1].setAttribute("checked", "true"); break;
        case "windows-1251": ddMenu.childNodes[3].setAttribute("checked", "true"); break;
        case "IBM866": ddMenu.childNodes[5].setAttribute("checked", "true"); break;
        case "UTF-8": ddMenu.childNodes[7].setAttribute("checked", "true"); break;
        default: ddMenu.childNodes[1].removeAttribute("checked"); ddMenu.childNodes[3].removeAttribute("checked"); ddMenu.childNodes[5].removeAttribute("checked"); ddMenu.childNodes[7].removeAttribute("checked");
    }
}
this.setAttribute('onclick', "getDocEncoding();");

Отредактировано Dobrov (15-10-2018 09:44:30)

Отсутствует

 

№1290917-10-2018 13:22:53

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4709
UA: unknown 0.0

Re: Custom Buttons

Dobrov пишет:

Посоветуйте, как на кнопке-меню открыть .appendChild меню правым кликом мыши, а не левым? (на него нужно более часто используемое действие)

Выделить код

Код:

this.onclick =e=> {
   if ( e.button == 0 ) alert(e.button);
          
   if ( e.button == 1 ) alert(e.button);
   
   if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
        e.preventDefault();  
        menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
        };
};
this.oncontextmenu =e=> e.detail == 2 && !menuPopup.hidePopup()
             || e.ctrlKey || !!menuPopup.openPopup(this, "after_start");


var array = [
   "Кириллица (KOI8-R),KOI8-R",
   "Unicode (UTF-8),UTF-8",
   "Кириллица (Windows-1251),windows-1251",
];


var menuPopup = self.appendChild(document.createElement("menupopup"));
array.forEach(str=> { 
   var menuItem = menuPopup.appendChild(document.createElement("menuitem"));
   var label = str.split(",")[0], charset = str.split(",")[1]; 
   menuItem.setAttribute("label", label);
   menuItem.setAttribute("type", "radio");
   menuItem.setAttribute('checked', charset == gBrowser.docShell.charset);
   menuItem.onclick =()=> { try { SetForcedCharset(charset) } catch(e) { BrowserSetForcedCharacterSet(charset) } };
 
});
menuPopup.setAttribute("onclick", "event.stopPropagation()");

Отсутствует

 

№1291017-10-2018 22:00:52

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 218
UA: Firefox 56.0

Re: Custom Buttons

Dobrov
Спасибо за код! :rock:

Отсутствует

 

№12911Сегодня 00:37:13

Smitis
Участник
 
Группа: Members
Зарегистрирован: 29-01-2016
Сообщений: 7
UA: unknown 0.0

Re: Custom Buttons

Подскажите, есть такой код, позволяющий открывать предыдущую вкладку, после закрытия текущей https://forum.mozilla-russia.org/viewtopic.php?pid=759770#p759770
и здесь https://forum.mozilla-russia.org/viewtopic.php?pid=761644#p761644
А можно ли как-то переделать код, что бы открывалась вкладка слева от закрытой?

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]