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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№103-09-2011 11:17:17

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Помогите подключить js к новому расширению

Имеется скрипт который при наведении на ссылку с jpg-изображением создает рядом с курсором DIV с текстом. Скрипт работает, если его прописать в head конкретной страницы, а как сделать его расширением, чтобы работал на всех страницах?

Вот скрипт:

Выделить код

Код:

window.onload = function () {
  var arayLink = document.getElementsByTagName('a'),
      totalLink = arayLink.length;

  while (totalLink--) {
    arayLink[totalLink].addEventListener('mouseover', havejpg, false);
  }

  function havejpg (e) {
    var div = document.createElement('div'); 
    if (e.target.href.match(/jpg$/)) {
    x = e.clientX;
    y = e.clientY;
    div.style.position = 'absolute';
    div.style.left = x + 20;
    div.style.top = y + 20;
    div.style.width='auto';
    div.style.background = 'green';
    div.appendChild(document.createTextNode('Я обычный текст'));
    document.body.appendChild(div);
    }
  }
}


Прошу помощи. Не присылайте ссылки на документации! Лучшим уроком и помощью для меня будет конкретный пример созданного расширения, посмотрев исходный код которого я смогу разобраться.
Допустим создайте расширение через tools builder и добавьте мой скрипт.
Я сколько ни пытался, не получается.

Отсутствует

 

№203-09-2011 16:05:19

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Re: Помогите подключить js к новому расширению

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

Не нужно советов, пускай клюевой фразой для вас будет:

Kanzaki пишет

создайте расширение через tools builder и добавьте мой скрипт

Отредактировано Kanzaki (03-09-2011 16:07:47)

Отсутствует

 

№303-09-2011 18:27:23

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 7.0

Re: Помогите подключить js к новому расширению

Kanzaki пишет

Не нужно советов, пускай клюевой фразой для вас будет:

Вот с такими указаниями советов и не будет. Никаких.

Отредактировано hydrolizer (03-09-2011 18:27:56)

Отсутствует

 

№403-09-2011 18:40:13

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Re: Помогите подключить js к новому расширению

Я извиняюсь конечно, что так резко. Возможно у Вас создается впечатление, что я не хочу читать докуметацию, пробовать, испытывать всё самому, но на самом деле всё дело в том, что я не имею возможности подойти к делу вплотную, по причинам технического характера, но задача стоит, а выполнить прошу Вас. Здесь вроде ничего сложного. Надеюсь найдутся добрые люди, которы мне помогут.

Отредактировано Kanzaki (03-09-2011 18:43:19)

Отсутствует

 

№503-09-2011 19:27:31

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 7.0

Re: Помогите подключить js к новому расширению

Kanzaki пишет

Возможно у Вас создается впечатление

Именно. Создается впечатление, что вы просите помощи в вопросах элементарного характера, но при этом требуете, чтобы вас не тыкали носом в учебники. Написали бы сразу, что вам нужно, чтобы кто-то сделал требуемое - ничего страшного в этом нет.
Теперь о самом вопросе. В том виде, в каком скрипт представлен выше, просто взять его as is, и поместить в расширение не получится - скрипт работает с контентом загруженной веб-страницы, следовательно, нужно отслеживать загрузку новой страницы - а это может быть и переход по ссылке, и пользовательский ввод, это может происходить в одной вкладке, в разных вкладках, в разных окнах, в разных вкладках одновременно, и проч. - вариантов немало. Поэтому, я думаю, проще всего будет использовать этот скрипт как скрипт для Greasemonkey/Scriptish - там потребуется минимум действий, скрипт уже практически готов для использования с упомянутыми расширениями.

Отсутствует

 

№603-09-2011 19:42:48

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Re: Помогите подключить js к новому расширению

hydrolizer, благодарю, но нужно именно в виде расширения.xpi, можно его как-то отредактировать?
А что в нем сложного? При загрузке страницы он сканирует все ссылки на наличие в ее имени букв jpg и если при наведении на ссылку там такие буквы есть, появляется див с текстом.

Есть расширения которые, например рядом с ссылками показывают картинку в зависимости от типа ссылки (linkalert) или например показывают превью изображения при наведении на картинку (Image Preview или thumbnail expander), можно сделать на их основе, но не могу.

Отсутствует

 

№703-09-2011 19:48:43

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 7.0

Re: Помогите подключить js к новому расширению

Kanzaki
Если перечисленные расширения внедряют доп. разметку в код страницы, то они именно и делают вышеперечисленное - отслеживают загрузку новых страниц. С полнотой охвата нюансов, соответствующей степени корректности работы расширения.

Отсутствует

 

№803-09-2011 19:50:23

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Re: Помогите подключить js к новому расширению

А как мне это сделать в моем расширении?

Отсутствует

 

№903-09-2011 20:22:36

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 7.0

Re: Помогите подключить js к новому расширению

Kanzaki
Ну, поскольку уже речи о том, чтобы вставить скрипт как есть, не идет, то вот вам ссылки. Вам нужно сделать сделать вот это, но перед этим нужно сделать реализацию nsIWebProgressListener, а далее в обработчике nsIWebProgressListene.onStateChange() у экземпляра nsIWebProgress, пришедшего в обработчик, брать contentDocument - это и будет веб-документ, с элементами которого будет работать ваш скрипт. Экземпляр nsIWebProgress - это, фактически, browser таба, в котором загрузился документ. Момент, когда документ загрузился, следует определять в упомянутом обработчике по aStateFlags сигнатуры метода обработчика:

Выделить код

Код:

if ((aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_START) &&
    (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_IS_DOCUMENT))
{
  ...
}

(подробнее - см. здесь).
Вроде бы всё.

Отсутствует

 

№1003-09-2011 20:39:36

Kanzaki
Участник
 
Группа: Members
Зарегистрирован: 03-09-2011
Сообщений: 6
UA: Firefox 6.0

Re: Помогите подключить js к новому расширению

Буду следовать совету okkamas_knife, но хотелось создать своё с нуля, а не править чужое от ненужного хлама.

hydrolizer, мне кажется вы слишком уж намудрили. Смотрел расширение image preview предварительно установив совместимость, там нет ничего даже похожего.
Тем не менее я благодарю Вас за помощь, друзья мои. Спасибо, что пытались помочь.

Отсутствует

 

№1127-05-2012 19:57:22

Tarassheff
Участник
 
Группа: Members
Зарегистрирован: 27-05-2012
Сообщений: 1
UA: Chromium 18.0

Re: Помогите подключить js к новому расширению

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

Отсутствует

 

Board footer

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