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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 06-04-2010 14:07:47

luitzen, тут именно атрибут. Смысл кода в том, чтобы при загрузке страницы в списке br.contentDocument.forms[0].getElementsByTagName('select')[0] выбирался элемент со значением из textbox.

Пока я устанавливаю его в ручную:

Выделить код

Код:

br.contentDocument.forms[0].getElementsByTagName('select')[0].value   = "55555";

все работает нормально. Но при этом мне каждый раз приходится менять код расширения и перезапускать firefox. Хотелось бы, чтобы нужное значение бралось из textbox

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 05-04-2010 14:59:14

Здравствуйте. У меня снова вопрос.

Как в коде Javascript обращаться к свойствам элементов интерфейса?

Если конкретно, то есть такая проблема:

Добавил на панель состояния браузера кнопку и текстовое поле.

Выделить код

Код:

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

Теперь мне нужно использовать текст из textbox в коде Javascript. Как это сделать?

Код такой:

Выделить код

Код:

br.contentDocument.forms[0].getElementsByTagName('select')[0].value
   = значение из textbox

Разработка » Что нужно изменить, чтобы расширение заработало в firefox 3.6 » 05-02-2010 14:29:58

Все, спасибо. Вопрос снят. Помогла просто переустановка.

Разработка » Что нужно изменить, чтобы расширение заработало в firefox 3.6 » 05-02-2010 13:18:46

Здравствуйте.
Мое расширение перестало работать в firefox 3.6. Версию в install.rdf поменял, не помогло. В чем еще могут быть проблемы?

Вот код расширения.

Файл install.rdf

Выделить код

Код:

<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>submitExtension@softline.ru</em:id>
    <em:name>submitExtension</em:name>
    <em:version>0.1</em:version>
    <em:targetApplication> <!-- Firefox -->
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>3.0</em:minVersion>
        <em:maxVersion>3.6.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

Файл crome.manifest

[code]content  submitExtension     chrome/content/
locale   submitExtension  en-US  chrome/locale/en-US/

overlay  chrome://browser/content/browser.xul chrome://submitExtension/conte

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 23-11-2009 15:37:30

Снова нужна помощь.
Для того, чтобы понять как работать с вкладками немного модифицировал это расширение. Теперь по замыслу при щелчке на кнопке на всех открытых вкладках должно выполняться submit() для форм на этих вкладках. (известно, что форму там гарантированное есть.).

Получился вот такой код browser.js (основан на примере отсюда https://developer.mozilla.org/en/nsIWindowMediator):

Выделить код

Код:

function SubmitTabs() {
   
   var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]  
                    .getService(Components.interfaces.nsIWindowMediator);  
 var enumerator = wm.getEnumerator("navigator:browser");  
 while(enumerator.hasMoreElements()) {  
   var win = enumerator.getNext();  
   // win is [Object ChromeWindow] (just like window), do something with it
   win.content.document.forms[0].submit();
   dump("Submitted!\n");
 } 

}

В результате submit выполняется, но только на выбранной вкладке. В чем может быть причина?. В примере написано: "Thi

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 22-11-2009 20:31:18

Infocatcher пишет

ksfinks
Там документ совсем не тот.

Попробуйте заменить document на content.document, а window.open() – на gBrowser.addTab().
Ну, и лучше curr.href вместо curr.getAttribute('href').

Спасибо. Заработало.

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 22-11-2009 14:51:43

okkamas_knife пишет

ksfinks
ну у тебя же iterateNext()
как функция отсутствует в коде
а вдругих работает потому что она гдето ещё присутствует.. поищи в файлах
function iterateNext() {блаблабла}
и вставь эту функцию в свой код

iterateNext() - метод объекта iter, который имеет тип XPathResult. Если бы библиотека ХPath не поддерживалась, то и document.evaluate не выполнялся бы. Он же выполняется и в iter есть какое-то не null значение

Разработка » Проблема с написанием расширения для Firefox. Помогите, плиз. » 22-11-2009 13:56:23

Задача.

Сделать кнопку в нижней части окна firefox, с помощью которой можно будет открывать или все гиперссылки на странице или гиперссылки с определенным текстом.

Решение.

Взял в качестве примера HelloWorld отсюда http://design-challenge.mozillalabs.com/re...ension_bootcamp и переделал под свою задачу. Вот что получилось:

файл 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

[code]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('hre

Разработка » Greasemonkey - возможна ли реализация задачи? » 09-11-2009 12:49:01

(Можно с помощью скрипта только в том случае, если все табы через него открыты.)

Табы открываются тоже через скрипт по ALT + E c помощью window.open. Можно ли получить ссылку на массив открытых табов?

Разработка » Greasemonkey - возможна ли реализация задачи? » 09-11-2009 12:33:15

Здравствуйте. Подскажите возможен ли скрипт, умеющию делать такие вещи:
1. Перемещаться по вкладкам firefox.
2. Вызывать событие submit для форму на каждой вкладке. Форма везде одна и та же.

2-ой пункт я реализовал в кач-ве скрипта для greasemonkey:

Выделить код

Код:

// ==UserScript==
// @name          GoButtonsClick
// @namespace     http://diveintogreasemonkey.org/download/
// @description   clicking on all "Go" Buttons
// @include       *
// @exclude       http://diveintogreasemonkey.org/*
// @exclude       http://www.diveintogreasemonkey.org/*
// ==/UserScript==
window.go = {
  handler: function(e)
  { 
    if(!e.altKey) return true;
    if(e.keyCode!=71) return true;
     window.go.runScript();
    return false;
  },
  init: function(){
   window.addEventListener('keydown',window.go.handler,false);
  },
  runScript: function()
  {
  document.forms[0].submit();
  }
  };
window.go.init();

В результате при нажатии Alt + G выполняется submit(). Теперь хочу сделать тоже самое, но чтобы вып

Разработка » Проблема с русским алфавитом в greasemonkey » 03-11-2009 15:42:57

Здравствуйте. Недавно начал знакомство с greasemonkey. Придумал вот такой код для открытия ссылки Видео на стартовой странице firefox (та которая гугл-поиск) в новой вкладке.

Выделить код

Код:

// ==UserScript==
// @name          TestScript
// @namespace     http://diveintogreasemonkey.org/download/
// @description   example script 
// @include       *
// @exclude       http://diveintogreasemonkey.org/*
// @exclude       http://www.diveintogreasemonkey.org/*
// ==/UserScript==

var iter = document.evaluate("//a[.='Видео']", 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();
    }

Не работает. Тот же код но для ссылки Gmail - работает. Посмотрел код скрипта через greasemonkey, вместо видео там написано яПНяПНяПНяПНяПН. Получается greasemonkey не воспринимает русский алфавит. Можно ли как-нибудь обойти эту проблему?

Board footer

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