Страницы: 1
Кто-нибудь уже сталкивался с такой проблемой, что в Firefox константы перестали быть глобальными?
Например, подгружается файл jslib.js следующим образом:
В этом файле задаётся в частности константа
При выполнении самого jslib.js константа объявлется (console.log это показывает), а вот внутри того xul-файла, который подгружал jslib.js эта константа "undefined".
Ума не приложу как с этим бороться...
Интересно было бы самому поэкспериментировать, чтобы понять причину.
Та же ситуация происходит, если я беру уже работающее дополнение, удаляю его из фаерфокс...
Можете выложить это работающее расширение?
Вроде бы здесь есть какой-то ответ на проблему в виде сообщения "window is not defined". Пишется, что надо использовать nsIWindowMediator. Я бы попробовал заменить window (см. строку 4 в коде) на Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator)
краткий вариант как узнавать ид элемента (с картинками)
Очень доходчиво. Спасибо огромное.
... а далее дом инспектор в руки и смотрим что за xul файл используется ...
Мне не известна эта техника. Не пойму как это делается.
Стандартный диалог выбора шрифта в Windows-приложении выглядит вот так:
Задача: сделать аналогичное окно средствами XUL.
просто окно надо вызывать заранее
то бишь перед стартом процеса с обработкой данных
тогда оно откроется и в него будет писаться.
зы как вариант можно не заморачиваться с отдельным окном а открывать стандартную консоль и очищать её перед запуском процесса.
если не получится сделать что задумал - гляну но попозже.
Для теста поместил два объекта Status и Log в то же окно, в котором выполняется запуск обработки файла. Т.е. окно уже открыто, все элементы визуально видны. Однако результат аналогичный. Данные выводятся в объекты Status и Log только в конце процесса. В момент выполнения процесса Firefox также входит в состояние "не отвечает".
Выводить логи в консоль научился - console.log(), а вот как открывать и очищать не знаю.
Michael72
сразу скажу код не разбирал и про вывод не совсем понятно что именно ты хочешь
в смысле куда именно выводить.
предложу такой вариант
начался твой процесс - вызываем setTimeout(myfunc, 500); 500 скорость обновления в мс
в твоём окошке есть например текстбокс (значения для примера)
<textbox id="progress" flex="1" multiline="true" value="" width="300px" height="300px"/>в myfunc прописываем
document.getElementById("progress").value=твои текущие данные
if (тут проверяем условие - не завершён ли процесс получения данных){если не завершен то setTimeout(myfunc, 500); }
то есть у тебя запускается по таймауту функция которая читает данные закидывает в окно и если нет сигнала прекратить снова по таймауту вызывает себя.
Судя по данной рекомендации, мне кажется, что ты правильно понял куда выводятся данные. Для пущей наглядности привожу скрин-шот этого окна, куда выводятся данные:
Таким образом выглядит
…Диалоговое окно открывается следующим методом:
... var win_prefs = "chrome,dialog=no,dependent=no,resize=yes,screenX="+this.mX+",screenY="+this.mY+ ",width="+this.mWidth+",height="+this.mHeight; window.openDialog(this.mURL, "_blank", win_prefs);
Код вызываемого диалога:
[code]
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet href="chrome://conversiontools/skin/overlay.css" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="System Tools"
id="ConversionTools"
onload="Continue();"
maxwidth="583"
minwidth="583"
maxheight="473"
minheight="473"
>
<script type="application/x-javascript" src="conversiontools.js"/>
<script type="application/x-javascript" src="chrome://jslib/content/jslib.js" />
<vbox minwidth="583" minheight="473">
<hbox minheight="63" align="start">
<bo
Есть необходимость задания настроек для расширения, как сделать, чтобы появилась кнопочка "Настройка" для дополнения и как сохранить и использовать в расширении инфу, введенное в тектовое поле настроек?
Использую Addon-SDK.
Кнопочка "Настройка" появляется после установки опции optionsURL в конфигурационном файле install.rdf.
Пример:
[code]<?xml version="1.0"?>
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#"
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:mozilla:install-manifest"
em:id="{4ab9d0cf-6574-469d-bde5-f6e2af39e6fe}"
em:name="Работа с модулями BQT"
em:version="0.1"
em:creator="Власенко Михаил Викторович"
em:homepageURL="http://michael72.radiushosting.ru/"
em:iconURL="chrome://usermoduletools/content/images/Quote1.Ico"
Как тяжело было разобраться, но слава Б-гу получилось. Большое вам спасибо за хорошую наводку.
А как можно сделать, чтобы атрибут disabled у toolbarbutton label="Назад" был равен true в случае, когда document.getElementById("browser").canGoBack=false, а когда document.getElementById("browser").canGoBack=true, то disabled у label="Назад" наоборот равнялся бы false?
То, что напрашивается в первую очередь:
<toolbox> <toolbar id="nav-toolbar"> <toolbarbutton label="Назад" image="images/Arrowlt.Bmp" orient="vertical" oncommand="document.getElementById('browser').goBack();" disabled="!document.getElementById('browser').canGoBack"/> <toolbarbutton label="Вперед" image="images/Arrowrt.Bmp" orient="vertical" oncommand="document.getElementById('browser').goForward();"/> </toolbar> </toolbox>
Не помогает.
…В списке (autocompletesearchparam="someUniqueId") сохраняется очень большое количество элементов. Это неудобно. Как можно ограничить например семью элементами, чтобы новые запоминались, а старые забывались?
Так и не разобрался как его настроить!!!:angry:
Не можете вызвать это окно с настройками —
или не можете разобраться в этом диалоговом окне?
Операционная система: Ubuntu Saucy Salamander (development branch), Release: 13.10.
Версия веб-браузера Firefox: 23.0+build2-0ubuntu1
Суть проблемы: Флажок не отображается, хотя щелчок по кнопке значение атрибута checked переключает — Скрин-шот:
Щелчок по кнопке Открыть новое окно выводит в поле Стих значение атрибута checked у этой кнопки (элемент checkbox). Таким образом можно убедиться, что переключение происходит, но при этом флажок не появляется. Мало того, форма у элемента какая-то вытянутая получается вместо нормального квадратика.
Кусок кода с этим checkbox-элементом:
<checkbox id="NewWindow" width="265" label="&Open-New-Window;" onclick="document.getElementById('ControlParms').setAttribute('value', this.hasAttribute('checked'));"/>
Создаётся впечатление, что это какой-то баг. Или может я не знаю какой-то хитрости? Для воспроизведения моей проблемы выкладываю своё расшире
…Я знаю, как настраивается. Но суть в том, что при каждом новом включении ImTranslator все возвращается на круги своя: английский интерфейс, перевод "english-spanish". Вот почему держусь за версию 4.19.
Отредактировано ofizer (23-08-2013 10:38:20)
У меня ваших проблем с настройками не наблюдается. Вы можете ознакомиться с работой переводчика, посмотрев это видео:
http://about.imtranslator.net/imtransla … r-firefox/
На английском языке, но мне помогло очень быстро вникнуть в самые главные особенности.
Michael72На https://addons.mozilla.org/ru/firefox/a … /versions/ можно скачать ImTranslator 7.1. Пробуйте. Если стоит NoScript, прочтите там примечание.
С версией ImTranslator 7.1 то же самое. NoScript у меня отключен.
…Версия веб-браузера Firefox: 23.0~b10+build1-0ubuntu1
Не работает настройка по инструкции Security preferences
Операционная система: Ubuntu Saucy Salamander (development branch), Release: 13.10.
Версия веб-браузера Firefox: 23.0~b9+build1-0ubuntu1
Расширение: "ImTranslator 7.0"
Действия: Открываю окно ImTranslator и щелкаю по кнопке "Вставить все"
У меня версия Firefox: 23.0~b9+build1-0ubuntu1
Перестала работать функция win.open() (расширение jslib). Что порекомендуете делать? Пройдёт само или стоит куда-то сделать рапорт о неполадке, чтобы ускорить?
Операционная система: Ubuntu Saucy Salamander (development branch), Release: 13.10.
Версия веб-браузера Firefox: 23.0~b9+build1-0ubuntu1
Расширение: "ImTranslator 7.0"
Действия: Открываю окно ImTranslator и щелкаю по кнопке "Вставить все"
Название расширения: Dict
Адрес домашней страницы: https://addons.mozilla.org/ru/firefox/addon/dict
Прямая ссылка на расширение: Dict 0.6.83
Краткое описание: Dict-клиент. Работает следующим образом. Сперва выделяется слово в веб-браузере, например двойной клик по интересующему слову. Затем из контекстного меню выбирается соответствующая команда. В результате открывается новое окно с определениями выделенного слова. Определения берутся из словарных баз на одном из DICT-серверов, который указывается в настройках расширения. Если определений для слова не найдено, то выскакивает окно со списком слов очень похожих на введённое для поиска слово.
Michael72
Выделить кодКод:
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="Autocomplete example"> <textbox type="autocomplete" autocompletesearch="form-history" autocompletesearchparam="someUniqueId" onkeypress="if(event.keyCode == event.DOM_VK_RETURN) addAutocompleteEntry(this);" /> <script type="application/javascript"> <![CDATA[ function addAutocompleteEntry(tb) { Components.classes["@mozilla.org/satchel/form-history;1"] .getService(Components.interfaces.nsIFormHistory2 || Components.interfaces.nsIFormHistory) .addEntry(tb.getAttribute("autocompletesearchparam"), tb.value); } ]]> </script> </window>
Спасибо. Вот это уже намного лучше помогло разобраться. В моём случае пришлось выкинуть обработчик событий onkeypress="if(event.keyCode == ev
…Я видел эту документацию. Но она мне не помогла, поэтому почувствовал нужду в помощи на русском языке. Например, путем эксперимента я перебрал все опции для атрибута autocompletesearch. Не одна из опций не даёт желаемый результат. Опция history выкидывает список с URL-адресами, которые были когда-то посещены веб-браузером. Мне это не надо. Ближе к моей потребности на первый взгляд представляется опция form-history, но ничего не сохраняется и желаемый список не выпадает. Поэтому и возникает вопрос: а реально ли это вообще сделать?
Имеется xul окно, которое содержит в себе элемент - textbox:
Хочу, чтобы однажды введённые данные запомнились, и при следующем вызове окна эти данные находились бы в выпадающем списке. Реально ли это сделать?
Чтобы понятнее было - хочу, чтобы было примерно вот так:
Вышеприведённый скрин-шот реализован через HTML-код, как сделать подобное для поля "Управляющие параметры" через XUL-код?
Страницы: 1