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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№106-06-2010 01:24:51

Systematis
Участник
 
Группа: Members
Зарегистрирован: 07-03-2010
Сообщений: 6
UA: Firefox 3.6

Нужна помощь с расширением goo.gl lite

Приветствую.
Месяц назад установил замечательное мини-расширение goo.gl lite.
Всё в нём хорошо, да вот только выезжающяя полоска с уведомлением сама обратно не уезжает - нужно жать [X]. И это потихоньку начинает надоедать и раздражать, потому что в других расширениях такие уведомления сами исчезают через некоторое время. Вот такое уведомление:
Yjlnl.jpg
Собственно просьба: может кто-нибудь дописать/убрать строчки в скрипте расширения, так чтобы уведомление само исчезало сразу же после появления?
Код небольшой, но так как я в этом вообще ничего не смыслю, то даже этот небольшой код ничего для меня не значит. Нашёл только тип уведомления: notificationbox.

Ссылка на .jar: http://dl.dropbox.com/u/94984/goo.gl_lite.jar
На всякий случай оставлю здесь JS:

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

Выделить код

Код:

goo_gl_lite = new function()
{
    const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].
    getService(Components.interfaces.nsIClipboardHelper);

    const notificationValue = "goo.gl lite notification";
    const iconURL = "chrome://goo.gl_lite/skin/icon_16x16.png";

    /**
     * Basic initiation
     */
    this.init = function()
    {
        document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", goo_gl_lite.popupshowing, false);
    };

    /**
     * Show/hide context menu entries on demand
     */
    this.popupshowing = function()
    {
        gContextMenu.showItem("context-goo_gl_lite-current", !(gContextMenu.isContentSelected || gContextMenu.onTextInput || gContextMenu.onLink || gContextMenu.onImage || gContextMenu.onVideo || gContextMenu.onAudio)); // Shows Copy Goo.gl URL for This Page whenever Bookmark This Page is shown
        gContextMenu.showItem("context-goo_gl_lite-link", gContextMenu.onLink && !gContextMenu.onMailtoLink); // Shows Copy Goo.gl URL for Link Location whenver Bookmark this Link is shown.
    };

    /**
     * Makes a short url from long_url
     * @param long_url long url, unescaped.
     */
    this.make_short_url = function(long_url)
    {
        var req = new XMLHttpRequest();
        req.addEventListener("load", function()
        {
            var response = JSON.parse(req.responseText);
            if(response.error_message)
            {
                goo_gl_lite.error("Gateway returned error message: " + response.error_message);
            }
            goo_gl_lite.notify(response.short_url + " has been copied to the clipboard.  Shortened from " + long_url, "PRIORITY_INFO_MEDIUM");
            gClipboardHelper.copyString(response.short_url);
        }, false);
        req.addEventListener("error", function()
        {
            goo_gl_lite.error("Error contacting gateway.  Status code: " + req.status);
        }, false);
        req.open("GET", "http://ggl-shortener.appspot.com/?url=" +
             encodeURIComponent(long_url));

        req.send();
    };

    /**
     * @param text Text of notification
     * @param priorityKey key to specify priority, as string
     */
    this.notify = function(text, priorityKey)
    {
        var notifyBox = window.getNotificationBox(top.getBrowser().selectedBrowser.contentWindow);
        notifyBox.removeAllNotifications(false);
        notifyBox.appendNotification("Goo.gl Lite: " + text, this.notificationValue, this.iconURL, notifyBox[priorityKey], null);
    };

    this.error = function(error_text)
    {
        this.notify("Short URL creation failed: " + error_text, "PRIORITY_WARNING_MEDIUM");
        throw new Error("[goo.gl lite] Short URL creation failed: " + error_text);
    };

    this.make_from_current_page = function()
    {
        this.make_short_url(top.getBrowser().currentURI.spec);
    };

    this.make_from_link = function()
    {
        this.make_short_url(gContextMenu.linkURL);
    };
}();

window.addEventListener("load", goo_gl_lite.init, false);


и XUL (хотя он, видимо, в данном случае мало чем сможет помочь):
скрытый текст

Выделить код

Код:

<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://goo.gl_lite/skin/goo.gl_lite.css" type="text/css"?>

<!DOCTYPE toolbarpalette SYSTEM "chrome://goo.gl_lite/locale/goo.gl_lite.dtd">

<overlay id="goo.gl_lite_overlay"
     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="text/javascript" src="goo.gl_lite.js"/>

  <toolbarpalette id="BrowserToolbarPalette">
    <toolbarbutton id="goo_gl_lite_button" class="toolbarbutton-1"
           label="&goo.gl_lite.toolbar_button_label;" tooltiptext="&goo.gl_lite.toolbar_button_tooltip;"
           oncommand="goo_gl_lite.make_from_current_page();"/>
  </toolbarpalette>

  <popup id="contentAreaContextMenu">
    <menuitem id="context-goo_gl_lite-current" label="&goo.gl_lite.context_current_label;" accesskey="&goo.gl_lite.context_current_accesskey;" insertafter="context-bookmarkpage" oncommand="goo_gl_lite.make_from_current_page();"/>
    <menuitem id="context-goo_gl_lite-link" label="&goo.gl_lite.context_link_label;" accesskey="&goo.gl_lite.context_link_accesskey;" insertafter="context-copylink" oncommand="goo_gl_lite.make_from_link();"/>
  </popup>
      

</overlay>


Надеюсь, кто-нибудь знающий сможет найти пару свободных минут.
Спасибо.

Отредактировано Systematis (06-06-2010 01:31:35)

Отсутствует

 

№206-06-2010 01:44:41

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.6

Re: Нужна помощь с расширением goo.gl lite

После

Выделить код

Код:

notifyBox.appendNotification("Goo.gl Lite: " + text, this.notificationValue, this.iconURL, notifyBox[priorityKey], null);

добавить

Выделить код

Код:

setTimeout(function(notifyBox, notify) {
            if(notify.parentNode)
                notifyBox.removeNotification(notify);
        }, 7000, notifyBox, notify);

7000 – в миллисекундах.

Добавлено 06-06-2010 01:45:16
Но лучше написать автору. =)

Отредактировано Infocatcher (06-06-2010 01:51:58)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№306-06-2010 13:02:09

Systematis
Участник
 
Группа: Members
Зарегистрирован: 07-03-2010
Сообщений: 6
UA: Firefox 3.6

Re: Нужна помощь с расширением goo.gl lite

Infocatcher
Большое спасибо.
Но если установить расширение с исправленным кодом, то кнопка расширения в браузере исчезает, да и сам браузер становится каким-то кривым (можно заметить, если посмотреть на статусбар и панель табов справа):
892333.png

Видимо, придётся писать автору.

Отредактировано Systematis (06-06-2010 13:03:30)

Отсутствует

 

Board footer

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