А что надо вызывать?
setTimeout, что ты и пытаешься сделать, только этого не происходит, по причине того, что аргументы setTimeout перед передачей ей управления вычисляются.
Первым (а хотя бы и вторым) вычисляется первый аргумент "wait4Load ()", который есть вызов функции.
Получается
setTimeout (wait4Load { setTimeout (wait4Load { setTimeout ........... stack overflow.
в данной ситуации лучше использовать setInterval
не забудь скобки поставить )
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Первым (а хотя бы и вторым) вычисляется первый аргумент "wait4Load ()"
Вот я тормоз - скобки поставил
Понял наконец-то свою ошибку, но вариант с setInterval конечно правильнее
Ещё такой момент - я правильно понимаю, что лишний вызов clearInterval ничем не навредит? А то не нашёл как можно отслеживать эти самые интервалы.
--- ---
Отсутствует
лишний вызов clearInterval ничем не навредит?
Если id интервала не будет достоянием кода из разных окон, то вряд ли.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Уж не знаю, в чём там дело, но пришлось заменить setInterval обратно на setTimeout - почему-то не получалось полностью его выключить через clearInterval.
С учётом пропуска мною () - это уже не очень удивляет, но вариант с setTimeout работает как задумано.
Отредактировано Forest (09-12-2008 09:53:04)
--- ---
Отсутствует
пришлось заменить setInterval обратно на setTimeout
Я предполагал, что может "не взлететь".
Везде есть свои грабли.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как-то с cookies можно работать в XUL?
Обычно они ставятся на текущем домене, а в случае с приложением мы не имеем отношения к какому-то конкретному домену.
Есть какие-нибудь особенности и что-нибуь по данному поводу почитать?
Отсутствует
А как-то с cookies можно работать в XUL?
https://developer.mozilla.org/En/Code_snippets/Cookies
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как-то с cookies можно работать в XUL?
https://developer.mozilla.org/En/Code_snippets/Cookies
Спасибо, то что надо.
А можно как-то предложить пользователю сделать определенную страницу стартовой при первой загрузке расширения, например как в яндекс-баре?
Я, безусловно, начал читать про XPCOM и пытаться понять как эта фича делается у яндексовсого бара, но опыта пока не хватает.
С одной частью сам разобрался, просто добавить в начальную страницу можно примерно так:
var Cc = Components.classes; var Ci = Components.interfaces; var url = "http://forum.mozilla-russia.org/"; var param = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); var str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString); str.data = url; param.setComplexValue("browser.startup.homepage", Ci.nsISupportsString, str);
Осталось только первый запуск и разрешение пользователя %)
Отредактировано Snipe (15-12-2008 18:40:10)
Отсутствует
Snipe
Осталось только первый запуск и разрешение пользователя
По первому запуску тут была целая тема.
Например можно проверять на наличие собственного параметра, и если его нет - значит первый запуск.
А спрашивать проще всего confirm-ом.
--- ---
Отсутствует
Такой вопрос возник про 2-ку (даже про Птицу, но не думаю, что там есть различия):
Как правильно включать одни файлы *.js в другие?
Сейчас пользуюсь вариантом, когда несколько *.js включаются в общий *.xul файл (или это единственный вариант?).
Или это всё появляется лишь в 3-ке?
--- ---
Отсутствует
Что значит "включать" ?
Если обычным текстом - то никак. Может быть, будет во 2-й версии ECMAScript.
Если нужен подгружаемый скрипт - используй mozISubscriptLoader.
Если просто в окне нужны определения из разных файлов - набор элементов <script> в оверлее - самый правильный вариант.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Если просто в окне нужны определения из разных файлов - набор элементов <script> в оверлее - самый правильный вариант.
Это именно тот вариант, про который я говорил - получается, что он единственный.
А действительно нельзя сделать окно настроек расширения окном с изменяемым размером?
Или это я плохо искал?
--- ---
Отсутствует
Ну всем хорошо сочетание (для того же окна настроек расширения)
, но если размер содержимого начинает превышать размер окна - всё ломается
--- ---
Отсутствует
Подскажите, пожалуйста, нигде так и не смог найти ответ.
Пишу расширение, которое читает данные из файла и сравнивает их с тем, что на html странице. В текстовом файле может находиться текст как на русском, так и на английском языках.
Вот сейчас пытаюсь реализовать код, который бы читал данные из файла и выводил бы их алертом. Всё работает, за исключением того, что русские буквы в алерте выводятся коряво, а английские - нормально.
Код:
var mLocalFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); var line = {}; mLocalFile.initWithPath("C:\\1.txt"); if(!mLocalFile.exists()) return ""; var mFileInputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); - mFileInputStream.init(mLocalFile, 0x01, 0444, 0); var mInputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); mInputStream.init(mFileInputStream); var mn = mInputStream.read(mInputStream.available()); alert(mn);
Отсутствует
Примерно так:
var suc = Components. classes ["@mozilla.org/scriptableunicodeconverter;1"]. createInstance (Components. interfaces. nsIScriptableUnicodeConverter); suc. charset = "windows-1251"; mn = suc. ConvertToUnicode (mn);
см. http://xulplanet.com/references/xpcomref/ifaces/nsIScriptableUnicodeConverter.html
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
entropy пишетчто русские буквы в алерте выводятся коряво
Можно просто файл с текстом сохранить как utf8.
Ошибаешься.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А подскажите, пожалуйста, ещё по кодировке.
Тот пример что Anton предложил работает только при чтении из файла. Когда я пытаюсь выполнить этот код:
function convert(data){ var suc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Components.interfaces.nsIScriptableUnicodeConverter); suc.charset = "windows-1251"; return suc.ConvertToUnicode(data); } content.document.body.innerHTML = convert("Текст");
Опять получается коряво.
Отсутствует
Насколько я помню, все строки в JS во время выполнения уже в Unicode, поэтому дополнительно еще раз конвертировать не стоит. Вопрос в том, правильно ли определяется кодировка самого JS-файла. Об этом здесь: International characters in XUL JavaScript. А вообще правильно не писать нелатинские буквы в коде и использовать локализацию.
Отсутствует
Такой вопрос возник про 2-ку (даже про Птицу, но не думаю, что там есть различия):
Как правильно включать одни файлы *.js в другие?
Сейчас пользуюсь вариантом, когда несколько *.js включаются в общий *.xul файл (или это единственный вариант?).Или это всё появляется лишь в 3-ке?
А нельзя вот так? :
var scripteg = document.createElement('script'); scripteg.src = 'URL'; kakoi_nibud_el.appendChild(scripteg)
или так?:
Честно говоря сам не пробовал.
А вот мой вопрос:
Есть у меня в аддоне ссылки, кнопки и прочая нажимаемая ерунда.
Сейчас она работает через window.content.location.href и все ссылки которые открываются, открываются в текущем окне, в текущей закладке.
А как мне сделать, чтоб после нажатия на них ссылка открывалась в новой закладке браузера?
Отсутствует
А как мне сделать, чтоб после нажатия на них ссылка открывалась в новой закладке браузера?
Если я правильно понял, о чём речь, то window.open должен помочь.
--- ---
Отсутствует
Отсутствует
Snipe
Наверное, проще будет через css
'tbid' - id toolbarbutton'а
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Snipe
Наверное, проще будет через css'tbid' - id toolbarbutton'а
Ну и конструкция.
Спасибо, работает.
Отсутствует