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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№760122-03-2014 17:41:45

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

Re: Custom Buttons

Ferguss114
Если открыть chrome://browser/content/places/places.xul во вкладке, у меня работает вот такое:

Выделить код

Код:

var target = content.document.getElementById("placesList").body;
var x = 50;
var y = 150;

var bo = target.boxObject;
target.dispatchEvent(new MouseEvent("mousedown", {
    bubbles: true,
    cancelable: true,
    view: target.ownerDocument.defaultView,
    detail: 1,
    screenX: bo.screenX + x,
    screenY: bo.screenY + y,
    clientX: bo.x + x,
    clientY: bo.y + y,
    ctrlKey:  false,
    altKey:   false,
    shiftKey: false,
    metaKey:  false,
    button: 0,
    relatedTarget: null
}));

Добавлено 22-03-2014 17:48:28
Но обычно это все не нужно, потому как проще работать с содержимым дерева напрямую, примерно так.

Отредактировано Infocatcher (22-03-2014 17:48:28)


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

Отсутствует

 

№760222-03-2014 21:14:25

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

Спасибо Infocatcher! :)


Infocatcher пишет

Но обычно это все не нужно, потому как проще работать с содержимым дерева напрямую, примерно так.

К сожалению, это для меня сложновато. А с кликом как-то понятнее - вот он элемент и вот я по нему кликаю :)

Как оказалось, и мой способ, если открыть chrome://browser/content/places/places.xul во вкладке, работает. Надо только тщательно подобрать координаты. А я пробовал свой способ на обычной странице и там получалась вышеописанная бяка.
А почему так получается - если я в библиотеке запускаю вот этот свой код

Выделить код

Код:

var utils = content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils);

utils.sendMouseEvent("mouseup", х, у, 0, 1, 0);

из ScratchPad-a, после нескольких запусков вдруг в  ScratchPad сами вставляются ссылки всех моих закладок?

Отсутствует

 

№760322-03-2014 22:02:00

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

Re: Custom Buttons

Ferguss114 пишет

А с кликом как-то понятнее - вот он элемент и вот я по нему кликаю

А кликать зачем, вот в чём вопрос?

Отсутствует

 

№760423-03-2014 20:59:02

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

bunda1 пишет

А кликать зачем, вот в чём вопрос?

А как иначе я могу программно переключать пункты, что на моей картинке?


У меня часто бывает ошибка

Выделить код

Код:

0x80004005 (NS_ERROR_FAILURE) [nsIDOMWindowUtils.sendMouseEvent]

Я смотрел - это известный баг https://bugzilla.mozilla.org/show_bug.cgi?id=519592
Написано Status:     RESOLVED FIXED
Но я там не смог разобраться: что мне надо сделать чтоб у себя пофиксить эту ошибку?

Отредактировано Ferguss114 (23-03-2014 20:59:35)

Отсутствует

 

№760523-03-2014 22:40:10

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

Re: Custom Buttons

Ferguss114 пишет

А как иначе я могу программно переключать пункты, что на моей картинке?

Может это поможет 29-03-2013 11:41:31

Отсутствует

 

№760624-03-2014 02:37:25

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

Может это поможет

Да, наверно это лучше решение.

И всё же, как там на багзилле разобраться? Если пишут RESOLVED FIXED значит есть какое-то решение? Где его там найти?

Отсутствует

 

№760725-03-2014 00:22:24

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

У меня по щелчку создаётся див.
Как расположить этот див в месте, где произошло событие?

Отсутствует

 

№760825-03-2014 04:43:02

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 28.0
Веб-сайт

Re: Custom Buttons

Infocatcher пишет

Ferguss114
Если открыть chrome://browser/content/places/places.xul во вкладке, у меня работает вот такое:

Выделить код

Код:

var target = content.document.getElementById("placesList").body;
var x = 50;
var y = 150;

var bo = target.boxObject;
target.dispatchEvent(new MouseEvent("mousedown", {
    bubbles: true,
    cancelable: true,
    view: target.ownerDocument.defaultView,
    detail: 1,
    screenX: bo.screenX + x,
    screenY: bo.screenY + y,
    clientX: bo.x + x,
    clientY: bo.y + y,
    ctrlKey:  false,
    altKey:   false,
    shiftKey: false,
    metaKey:  false,
    button: 0,
    relatedTarget: null
}));

Добавлено 22-03-2014 17:48:28
Но обычно это все не нужно, потому как проще работать с содержимым дерева напрямую, примерно так.

А у меня var target = content.document.getElementById("placesList").body; даёт синтаксическую ошибку...


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№760925-03-2014 13:39:35

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

okkamas_knife пишет

получаем данные о позиции клика
далее так
mydiv.style.position="absolute";
mydiv.style.left="100px";
mydiv.style.top="100px";

Я делал так

Выделить код

Код:

document.body.onclick=function(e) {
   var mydiv = document.createElement('div');
   mydiv.innerHTML = 'foobar';
   mydiv.style.position="absolute";
   mydiv.style.left="100px";
   mydiv.style.top="100px";
   document.body.appendChild(mydiv)
}

И мой див стабильно появляется на расстоянии 100px слева  и 100px сверху, как и следовало ожидать.

Если же я подставляю

Выделить код

Код:

mydiv.style.left=e.clientX; // или e.pageX
mydiv.style.top=e.clientY;

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

Отредактировано rbfyec (25-03-2014 13:41:01)

Отсутствует

 

№761025-03-2014 15:58:26

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

Re: Custom Buttons

rbfyec пишет

mydiv.style.left="100px";

rbfyec пишет

mydiv.style.left=e.clientX; // или e.pageX


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

Отсутствует

 

№761125-03-2014 19:51:13

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 28.0

Re: Custom Buttons

Подскажите, какой код написать в кнопке, чтобы при нажатии на нее происходил переход в полноэкранный режим (F11).

Отсутствует

 

№761225-03-2014 20:21:42

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

Re: Custom Buttons

Northtech пишет

Подскажите, какой код написать в кнопке, чтобы при нажатии на нее происходил переход в полноэкранный режим (F11).

Выделить код

Код:

BrowserFullScreen();

Отсутствует

 

№761325-03-2014 20:47:36

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

okkamas_knife пишет

надо mydiv.style.left=e.clientX+"px";
чтобы получалось не просто число а было и указание единиц измерения

Вот оказывается в чём было дело!

okkamas_knife, Infocatcher благодарю, всё получилось :)
Вот что вышло, может кому пригодится. Для визуализации кликов и реальных и виртуальных

Выделить код

Код:

content.document.body.onclick=function(e) {
  var img = new Image();
  img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAUCAYAAADlep81AAAAOXRFWHRTb2Z0d2FyZQBBbmltYXRlZCBQTkcgQ3JlYXRvciB2MS42LjIgKHd3dy5waHBjbGFzc2VzLm9yZyl0zchKAAAAOXRFWHRUZWNobmljYWwgaW5mb3JtYXRpb25zADUuMy4yNzsgYnVuZGxlZCAoMi4xLjAgY29tcGF0aWJsZSktgkHRAAAACGFjVEwAAAACAAAAAPONk3AAAAAaZmNUTAAAAAAAAAAkAAAAFAAAAAAAAAAAAfQD6AAAxs9NEgAAAJJJREFUSIntluEKgCAMhG/R+7+y/SmIsbk7iTToIBDn6VdtQ2tAw0LaZgN4/UCVvg9kyZj1VJKA/MZMeSowgAg00h9Uz3I5tGeB+6fO3tJcjPX01oRA0UHe7HOD8fRALlG/LNqgyo0o3oOUgJ4QW22vAbXzqcAoILWXjHoAwLLrR1QN2SFRXJ0rgWZpucb4A1U6AAhrHSVXu2WhAAAAGmZjVEwAAAABAAAAJAAAABQAAAAAAAAAAAH0A+gAAF28p8YAAAAeZmRBVAAAAAJIie3BMQEAAADCoPVPbQhfoAAAgMcAC1QAAdbG1GIAAAAASUVORK5CYII=";
  img.style.position="absolute"; 
  img.style.left=e.pageX+"px";
  img.style.top=e.pageY+"px";
  content.document.body.appendChild(img);
  return false
}

Отредактировано rbfyec (25-03-2014 20:51:42)

Отсутствует

 

№761426-03-2014 19:52:04

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 24.0

Re: Custom Buttons

Скажите, а как можно присвоить элементу на странице тултип со своим текстом?
Например, на этой создать тултип при наведении курсором на элемент с id = player-unavailable.
А если у элемента нет id, а есть только class ? Например, как на текущей странице class = postavatar

Отсутствует

 

№761526-03-2014 23:02:33

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

Re: Custom Buttons

Inko7 пишет

Скажите, а как можно присвоить элементу на странице тултип со своим текстом?
Например, на этой создать тултип при наведении курсором на элемент с id = player-unavailable.
А если у элемента нет id, а есть только class ? Например, как на текущей странице class = postavatar

Ну по разному можно завысит от задачи. Вот пример Всплывающие подсказки с помощью CSS3 » Свобода слова вебмастерского

Отсутствует

 

№761626-03-2014 23:26:25

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 24.0

Re: Custom Buttons

bunda1
мне нужно добавить в код кнопки
если известен id, то вот так работает:

Выделить код

Код:

content.document.getElementById('player-unavailable').setAttribute("title", "нажми СКМ");

а какой код будет, если известен только class ?
что-то getElementsByClassName не срабатывает...

Отредактировано Inko7 (26-03-2014 23:31:28)

Отсутствует

 

№761726-03-2014 23:54:26

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

Re: Custom Buttons

Если только класс то элемент на странице надо искать вот так http://javascript.ru/tutorial/dom/search или указать вот так getElementsByClassName("textarea")[0] если он там один.

Отредактировано bunda1 (26-03-2014 23:54:42)

Отсутствует

 

№761827-03-2014 06:17:34

gligliko
Участник
 
Группа: Members
Зарегистрирован: 27-03-2014
Сообщений: 2
UA: Firefox 29.0

Re: Custom Buttons

подскажите, пожалуйста, какой код написать для кнопок навигации и обновления страницы?
они в 29  версии у меня намертво прикреплены в строке адреса, мне это не нравится, пусть продублирую, но хочу сделать их слева, где всегда они у меня были
2543e3e3cc9dd06b7125dbc1ec66414e.jpg

Отсутствует

 

№761927-03-2014 12:10:51

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

или указать вот так getElementsByClassName("textarea")[0] если он там один

спасибо, вроде разобрался

Отредактировано Inko7 (27-03-2014 12:13:01)

Отсутствует

 

№762027-03-2014 22:09:16

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

Re: Custom Buttons

gligliko пишет

какой код написать для кнопок навигации

Я вот такое пробовал:

Выделить код

Код:

var item = getItem("back-button");
//var item = getItem("forward-button");
Array.forEach(item.attributes, function(attr) {
    var name = attr.name;
    if(name != "id" && name != "class" && name != "type")
        this.setAttributeNS(attr.namespaceURI, name, attr.value);
}, this);
if(this.hasAttribute("tooltip"))
    this.removeAttribute("tooltiptext");
var cm = this.getAttribute("context");
if(cm) {
    this.onmousedown = function(e) {
        this.setAttribute(
            "context",
            e.ctrlKey || e.shiftKey || e.altKey || e.metaKey
                ? "custombuttons-contextpopup"
                : cm
        );
    };
}
function getItem(id) {
    var item = document.getElementById(id);
    if(!item) {
        var toolbox = window.gNavToolbox
            || window.getNavToolbox()
            || document.getElementById("navigator-toolbox");
        item = toolbox.palette
            && toolbox.palette.getElementsByAttribute("id", id)[0];
    }
    return item;
}

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

Отсутствует

 

№762128-03-2014 05:39:18

gligliko
Участник
 
Группа: Members
Зарегистрирован: 27-03-2014
Сообщений: 2
UA: Firefox 29.0

Re: Custom Buttons

okkamas_knife пишет

gliglikoесли менюшки не нужны то в секцию кодBrowserBack();иBrowserForward();

Infocatcher пишет

Я вот такое пробовал

спасибо! получилось навигацию сделать

Отсутствует

 

№762228-03-2014 19:27:21

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 28.0

Re: Custom Buttons

Есть простые кнопки типа openPreferences();, хотелось бы чтобы отображалось нажатие кнопки при работе. Как это можно реализовать?

Отсутствует

 

№762328-03-2014 20:01:24

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

Re: Custom Buttons

Northtech
Если нужно открывать окно, то вот пример: https://github.com/Infocatcher/Custom_B … pen_Window


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

Отсутствует

 

№762428-03-2014 20:20:18

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 28.0

Re: Custom Buttons

ммм нет, я немного не об этом.
Вот как на картинке, Attributes Inspector работает и у кнопки нажатое состояние. Мне нужно подобное.
oItIV8X.png

Отсутствует

 

№762529-03-2014 13:31:10

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

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

Выделить код

Код:

content.PlacesOrganizer.location = "place:folder=......."

раскрывается дерево на нужной папке. А как сделать, чтобы раскрылась иерархия и самой этой папки, т. е. чтоб стали видны подпапки?

Отсутствует

 

Board footer

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