Может ли Firefox отображать разрешение изображения перед именем в заголовке вкладки?

Вопрос:

Может ли Firefox отображать разрешение изображения перед его названием в заголовке? Если у изображения слишком большое имя, я не могу прочитать его разрешение, и это меня беспокоит.

( спрашивает supasd)

Я провел некоторые исследования, но пока не увенчался успехом.

Кто-нибудь из вас, ребята, знает, как это сделать? Какой самый умный / самый эффективный способ? Можно ли это сделать в пользовательскомстиле? или нужен пользовательскийскрипт или надстройка? Не стесняйтесь предлагать любые предложения или решения, будь то пользовательский стиль или что-то в этом роде.

1 ответ

Решение

Самый простой код - изменить заголовок при загрузке документа:

// ==UserScript==
// @name         Image dimensions before title
// ==/UserScript==

(function() {
    var m = document.title
                    .match(/^(.+?\.\w+) \((?:([^,]+?), )?(\d+)\s*[x×]\s*(\d+)( .+?)?\)/);
    if (m)
        document.title = m[3] + 'x' + m[4] + ' ' + m[1] + (m[2] ? ' (' + m[2] + ')' : '');
})();

Используя MutationObserver, можно сразу изменить заголовок, если он установлен браузером без мерцания. Регулярное выражение работает как для Firefox, так и для Chrome и перемещает размеры перед именем файла. DOMContentLoaded прослушиватель событий все еще используется для переопределения вредных эффектов других аддонов / пользовательских скриптов, таких как CenterImage, который закрывает <HEAD> элемент.

// ==UserScript==
// @name         Image dimensions before title
// @run-at       document-start
// ==/UserScript==

if (!changeTitle()) {
    new MutationObserver(function(mutations) {
        var nodes = mutations[0].addedNodes;
        if (nodes[0] && nodes[0].localName == 'title' && changeTitle(nodes[0])
        || document.body && document.body.children.length) {
            this.disconnect();
        }
    }).observe(document, {subtree: true, childList: true});
}
document.addEventListener('DOMContentLoaded', changeTitle);

function changeTitle(node) {
    var m = document.title
                    .match(/^(.+?\.\w+) \((?:([^,]+?), )?(\d+)\s*[x×]\s*(\d+)( \w+)?\)/);
    if (m) {
        document.title = m[3] + 'x' + m[4] + ' ' + m[1] + (m[2] ? ' (' + m[2] + ')' : '');
        return true;
    }
}
Другие вопросы по тегам