Пример статьи (Название Статьи)

01 августа 2011

Когда пишешь новый пост, по появляется довольно узкое окно ввода. Почему оно не расширяется мне не понятно, а так как я недавно начал писать большой пост - узкое окно просто не приемлемо для меня. В связи с этим я решил написать плагин для FF, что бы окно было шире. Прощу прощения за ошибки в коде/архитектуре плагина, т.к. это мой первый плагин, на данный момент в большей степени пробный экземпляр нежели готовый продукт. Результат же выглядит следующим образом

Изменения размера формы происходит благодаря коду (overlay.js, подробности можно посмотреть в предыдущем посте о том как создавать плагины для FF):

var gbepfw = {
    onLoad: function () {
        var appcontent = document.getElementById("appcontent");
        if (appcontent)
            appcontent.addEventListener("DOMContentLoaded", gbepfw.onPageLoad, true);
    },
    getFirstDivByClass: function (theClass, doc) {
        var allHTMLTags = doc.getElementsByTagName("div");
        for (i = 0; i < allHTMLTags.length; i++)
            if (allHTMLTags[i].className == theClass)
                return allHTMLTags[i];
    },
    onPageLoad: function (aEvent) {
        //TODO - check url on http://www.blogger.com/post-edit.g
        var doc = aEvent.originalTarget; // doc - документ, на котором произошло событие "onload"
        doc.getElementById("postingHtmlBox").style.width = "100%";
        gbepfw.getFirstDivByClass("main", doc).style.width = gbepfw.getClientWidth(0.9, doc) + "px";
    },
    getClientWidth: function (koef, doc) {
        var width = 1000;
        if (window.innerWidth)
            width = window.innerWidth;
        else if (doc.documentElement && doc.documentElement.clientWidth)
            width = doc.documentElement.clientWidth;
        else if (doc.body && doc.body.clientWidth)
            width = doc.body.clientWidth;
        width *= koef;
        return width;
    }
};
window.addEventListener("load", function () {
    gbepfw.onLoad();
}, false);

Описание функций:

  • getClientWidth() - вычисляет размер окна;
  • getFirstDivByClass() - ищет первый "div" (он единственный) с css-классом "main" ;
  • onLoad() - точка входа;
  • onPageLoad() - применяем новые стилевые свойства для "div" с css-классом "main" и элемента с id "postingHtmlBox".
Пожалуйста, отключите ад-блок, чтобы я смог окупить оплату сервера - $10. А еще можно сделать донат - DONATE.