Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расширение firefox для открытия вкладок, нужна доработка кода 
:(
    Опции темы
ksfinks
Дата 21.11.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Здравствуйте, помогите пожалуйста с написанием расширения для firefox. Проблема в слабом знании JavaScript.

Описание задачи:

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

Что сделано.

Взял пример расширения отсюда: http://design-challenge.mozillalabs.com/re...ension_bootcamp

Оно добавляет кнопку, при щелчке на которой выводится HelloWorld в командную строку.

файл описания интерфейса browser.xul:

Код

<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/javascript"
          src="chrome://submitExtension/content/browser-3.js"/>
  <statusbar id="status-bar">
    <button label="Submit!" insertafter="statusbar-display"
            oncommand="submitExtension.onCommand(event)"/>
  </statusbar>
</overlay>


файл скрипта browser.js:

Код

let HelloWorld = {
  onCommand: function(event) {
    dump("Submitted!\n");
  }
};


Все работает. Только проблема с тем, что не знаю что значит let, переписал по аналогии для моей задачи. Получилось следующее:

Код

let submitExtension = {
   onCommand: function(event) {
   
   let iter = document.evaluate("//a[.='[RU]']", document, null, XPathResult.ANY_TYPE, null);
   let curr = iter.iterateNext();
   while(curr)
    {
       // _console.log(curr.getAttribute('href'));
      window.open(curr.getAttribute('href'));
      curr = iter.iterateNext();
    }

  }
    dump("Submitted!\n");
  }

};


В результате ошибка 

Ошибка: missing } after property list
Источник: chrome://submitextension/content/browser-3.js
Строка: 14, символ: 1
Исходный код:
 dump("Submitted!\n"); 

Подскажите, как можно переписать, чтобы заработало?
  






PM MAIL   Вверх
ksfinks
Дата 22.11.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Переписал код по-другому:
browser.xul:

Код

<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/javascript"
          src="chrome://submitExtension/content/browser-3.js"/>
  <statusbar id="status-bar">
    <button label="Submit!" insertafter="statusbar-display"
            oncommand="OpenTabs()"/>
  </statusbar>
</overlay>


Код


browser.js:

function OpenTabs() {
   
   var iter = document.evaluate("//a[.='[RU]']", document, null, XPathResult.ANY_TYPE, null);
   var curr = iter.iterateNext();
   while(curr)
    {
       // _console.log(curr.getAttribute('href'));
      window.open(curr.getAttribute('href'));
      curr = iter.iterateNext();
    }
    dump("Submitted!\n");

}



строка "Submitted" выводится, а вот вкладки не открываются.

P.S. Тот же код в скрипте для Greasemonkey работает. 
P.P.S.  Путь //a[.='[RU]'] тоже верен. Проверял в XPather


  


Это сообщение отредактировал(а) ksfinks - 22.11.2009, 12:11
PM MAIL   Вверх
ksfinks
Дата 22.11.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Похоже не работает самая первая строчка кода:

Код

var iter = document.evaluate("//a[.='[RU]']", document, null, XPathResult.ANY_TYPE, null);


В iter получается null.

В чем может быть причина, если XPather эти ссылки находит?
PM MAIL   Вверх
ksfinks
Дата 23.11.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 8.11.2009

Репутация: нет
Всего: нет



Проблема решена
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.