Здравствуйте!

помогите написать расширение - очень простое.
мне надо, что бы при наведении курсором на ссылку, ссылка (полная) копировалась в буфер обмена.

какие функции надо использовать?
что и как ?

p.s. спасибо.

pi.v.vitaly пишет

Надо создать сто одинаковых тем. Тогда может быть помогут!

где у меня ещё одинаковая тема? вообщем ты лучше помоги!!!

вот человек хороший подсказал. создаешь кнопку в Custom Buttons:

В раздел "Код":

Выделить код

Код:

/*CODE*/
this. checked = !this. checked;

В раздел "Инициализация":

/*Initialization Code*/
addEventListener
(
    "mouseover",
    function (event)
    {
        if ((event. target. nodeName == "A") && this. checked)
            cbu. gClipboard. write (event. target. href);
    },
    false
);

но если в исходном коде станице будет

<a href="/search/"><noindex>Карта сайта</noindex></a>

или так

<a href="/retail/" ><img border="0"  src="main-nav-retail.gif"></a>

то дополнение не будет работать.(((

так тоже не получается!

/*Initialization Code*/
var sbar = window.status;

addEventListener
(
    "mouseover",
    function (event)
    {
     if ((event. target. nodeName == "A") && this. checked)
        cbu. gClipboard. write (event. target. href + " : " + sbar );
           
    },
    false
);

как бы извлекать текст прямо из строки строки состояния  в момент наведение курсором на обьект???

Igor22ru Было расширение ,при наведении курсора на ссылку открывающее её в новой вкладке , а вот чтобы копировало такого не припоминаю :angel:

Крошка Ру пишет

Igor22ru Было расширение ,при наведении курсора на ссылку открывающее её в новой вкладке , а вот чтобы копировало такого не припоминаю

что то я не могу найти такого расширения? кинь линк есть есть?

Igor22ru название не помню :rolleyes: и очень возможно что на АМО  его нет :sick:

02-12-2010 09:21:09
.... или то было вообще не расширение а скрипт :whistle: :angel:

как сделать что бы кнопка при открытии браузера была нажатой в Custom Buttons

подскажите ещё как кнопку сделать - что бы копировал в буфер обмена строку при полной загрузки странице?

загрузилась страца - скопировал в буфет обмена !!! ???

Igor22ru пишет

как сделать что бы кнопка при открытии браузера была нажатой в Custom Buttons

Добавить

Выделить код

Код:

this.checked = true;

в самое начала кода инициализации.

Igor22ru пишет

но если в исходном коде станице будет

Выделить код

Код:

/*Initialization Code*/
this.checked = true; // Включить при открытии окна

this.getLink = function(node) {
    if(!node || !node.localName)
        return null;

    const docNode = Node.DOCUMENT_NODE; // 9
    const eltNode = Node.ELEMENT_NODE; // 1
    for(node = node; node && node.nodeType != docNode; node = node.parentNode) {
        if(
            (
                node instanceof HTMLAnchorElement
                || node instanceof HTMLAreaElement
                || node instanceof HTMLLinkElement
            )
            && node.hasAttribute("href")
            || node.nodeType == eltNode && node.hasAttributeNS("http://www.w3.org/1999/xlink", "href")
        )
            return node;
    }
    return null;
};
this.getLinkURI = function(node) {
    const ns = "http://www.w3.org/1999/xlink";
    return node.hasAttributeNS(ns, "href")
        ? makeURLAbsolute(node.baseURI, node.getAttributeNS(ns, "href")) // See chrome://browser/content/utilityOverlay.js
        : node.href || node.getAttribute("href");
};

addEventListener(
    "mouseover",
    function(event) {
        if(!this.checked)
            return;
        var link = this.getLink(event.target);
        link && cbu.gClipboard.write(this.getLinkURI(link));
    },
    false
);

Infocatcher
спасибо друг) работает как надо !!!

Выделить код

Код:

this.getLink = function(node) {
    if(!node || !node.localName)
        return null;

    const docNode = Node.DOCUMENT_NODE; // 9
    const eltNode = Node.ELEMENT_NODE; // 1
    for(node = node; node && node.nodeType != docNode; node = node.parentNode) {
        if(
            (
                node instanceof HTMLAnchorElement
                || node instanceof HTMLAreaElement
                || node instanceof HTMLLinkElement
            )
            && node.hasAttribute("href")
            || node.nodeType == eltNode && node.hasAttributeNS("http://www.w3.org/1999/xlink", "href")
        )
            return node;
    }
    return null;
};
this.getLinkURI = function(node) {
    const ns = "http://www.w3.org/1999/xlink";
    return node.hasAttributeNS(ns, "href")
        ? makeURLAbsolute(node.baseURI, node.getAttributeNS(ns, "href")) // See chrome://browser/content/utilityOverlay.js
        : node.href || node.getAttribute("href");
};

addEventListener(
    "mouseover",
    function(event) {
        if(!this.checked)
            return;
        var link = this.getLink(event.target);
        link && cbu.gClipboard.write(this.getLinkURI(link));
    },
    false
);

а сложно переделать этот код для хрома? [chrome]

ребята,
подскажите код для кнопки - копируе в  буфет обмена сообщение о том что страница загружена ?

Для Custom Buttons 0.0.5.1 и новее:

Выделить код

Код:

addEventListener("load", function(e) {
    var doc = e.target;
    var win = doc.defaultView;
    if(win.top != win) // Frame
        return;
    var data = "Страница загружена:\n" + doc.title + "\n" + doc.location.href;
    //LOG(data);
    cbu.gClipboard.write(data);
}, true, gBrowser);

хочу по нажатию кнопки скопировать html код в буфер обмена!
делаю так

Выделить код

Код:

/*CODE*/
this.copy();
Выделить код

Код:

/*Initialization Code*/
this.copy = function(e) {
    var doc = e.target;
    var data = doc.body.innerHTML;
    cbu.gClipboard.write(data);
}

подскажите что не так?

Помогите и мне пожалуйста:). Есть такое расширение чтобы при выделении ссылки, копировалось в буфер обмена?

Igor22ru
вот копирование содержимого тега <html></html> в буфер

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EinnerHTML%20copy%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-3%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Athis.onClick%20%3D%20function%28event%29%20%7B%0A%09if%28event.button%3C2%29%0A%09%7B%0A%20%20%20%20var%20doc%20%3D%20getBrowser%20%28%29.contentDocument%3B%0A%20%20%20%20var%20data%20%3D%20doc.getElementsByTagName%28%27html%27%29%5B0%5D.innerHTML%3B%0A%20%20%20%20cbu.gClipboard.write%28data%29%3B%0A%20%20%20%20%09%7D%0A%7D%0Athis.setAttribute%28%27onclick%27%2C%27this.onClick%28event%29%3B%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Igor22ru пишет

подскажите что не так?

При вызове this.copy(); e будет undefined.

Выделить код

Код:

var elt = content.document.documentElement;
var str = new XMLSerializer().serializeToString(elt);
cbu.gClipboard.write(str);