Страницы: 1
Пытаюсь создать из расширения текстовый файл и дописать его, но не получается, взятый из справочника пример не срабатывает.
Я чего-то упустил?
var fso = new ActiveXObject("Scripting.FileSystemObject"); var ts = fso.OpenTextFile("c:\\file.txt", 8); ts.WriteLine("Тестовая строка."); ts.Close();
Функция целиком:
function bd_site() { //var loc = String(window. getBrowser (). contentDocument. location. href); // Адресс странички var textsite = String(window. getBrowser (). contentDocument); // Текст страницы //alert("Сайт: "+loc); var fso = new ActiveXObject("Scripting.FileSystemObject"); var ts = fso.OpenTextFile("c:\\file.txt", 8); ts.WriteLine("textsite"); ts.Close(); alert("Текст с сайта: "+textsite); }
Отсутствует
Орец
Gecko не поддерживает ActiveX.
А по теме:
nsIFile Interface Reference
File object
Отредактировано Tearis (14-02-2007 01:40:28)
Кому ничего не надо, с того нечего и потребовать.
©Генри Филдинг
Отсутствует
Орец
Для чтения/записи файлов есть удобный модуль Io.js:
http://kb.mozillazine.org/Dev_:_Extensions_:_Example_Code_:_File_IO_:_jsio
Там же и примерчик приведён.
Отсутствует
Для чтения/записи файлов есть удобный модуль Io.js:
http://kb.mozillazine.org/Dev_:_Extensions_:_Example_Code_:_File_IO_:_jsio
Там же и примерчик приведён.
Я подключил модуль, и скопировал пример в свою функцию. Но почему-то не работает
Может кто-нибудь знает в чём ошибка?
function filebd_site() { var loc = String(window. getBrowser (). contentDocument. location. href); // Адресс странички var textsite = String(window. getBrowser (). contentDocument); // Текст страницы alert("Сайт: "+loc); var fileIn = FileIO.open('/file.txt'); alert("Выполено 1"); if (fileIn.exists()) { alert("Выполено 2"); var fileOut = FileIO.open('/copy of file.txt'); alert("Выполено 3"); var str = FileIO.read(fileIn); alert("Выполено 4"); var rv = FileIO.write(fileOut, loc); alert("Выполено 5"); alert('File write: ' + rv); rv = FileIO.write(fileOut, loc, 'a'); alert('File append: ' + rv); rv = FileIO.unlink(fileOut); alert('File unlink: ' + rv); alert("Текст с сайта: "+textsite); } }
Т.е. при выполнении функции адрес сайта показывает, а дальше уже нет.
Отредактировано Орец (18-02-2007 20:18:38)
Отсутствует
адрес сайта показывает, а дальше уже нет
то есть чего нет ? поподробней + ошибки из консоли желательно, или try{...}catch(e){alert(e)} сообщения.
А вообще, FileIO.open возвращает boolean, так что fileIn.exists() - это неправильно, надо просто fileIn:
Добавлено Вск 18 Фев 2007 21:00:53 :
p.s.
...FileIO.open возвращает boolean...
иногда. Неважно, впрочем - сначала всё равно if (fileIn):
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
то есть чего нет ? поподробней + ошибки из консоли желательно, или try{...}catch(e){alert(e)} сообщения.
Я вставил в текст несколько функций для вывода сообщений.
Первое вообще не относится к работе с файлами и является единственным появляющимся. Остальные стоят после каждой команды работающей с файлами.
Ошибка из консоли:
FoxClocks (INFO): DIAGNOSTICS:
OS: WINNT (ru-RU)
System local time: Sun Feb 18 2007 23:12:47 GMT+0300. Offset is -180 mins
Application: Firefox 2.0.0.1 (ru)
Extensions: BBCodeXtra (0.2.5.6), Custom Buttons (0.0.1.3), Fasterfox (2.0.0), FoxClocks (2.0.19), HideIP (1.0), JavaScript Debugger (0.9.87), keyconfig (20060828), Lingvo OnLine! (1.3.11), Mozilla.ru ExtensionPack (0.7 for Firefox 1.5-3.0 (20060409)), Nightly Tester Tools (1.2.1), ReloadEvery (2.0), FileBDTest (0.0.1), Talkback (2.0.0.1), Русский словарь проверки орфографии (с ё) (0.1)
FoxClocks version: 2.0.19
FoxClocks time zone data: tz database (modified) 2006o-1 (2006-11-26). Auto-update enabled
No chrome package registered for chrome://content/filebd/io.js .
Отсутствует
Ошибка из консоли:
Не вижу пока что ошибки - а в about:config javascript.options.showInConsole = true ? если нет, надо сделать.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А как правильно прописать присоединение Io.js?
Мне кажется, что дело в этом.
у меня написано:
Отредактировано Орец (24-02-2007 19:04:01)
Отсутствует
ну так правильно он подключил модуль или нет? если знаете, дайте ссылочку на грамотный ресурс по JS (русскоязычный). а то webhelp - рассказывает об устаревшем джейэс, там даже try catch нету. На крайний случай (на крайний!!) удовлетворюсь грамотным (только уж совсем удобным тогда) англоязычным ресурсом
silentium est aurum / in vino veritas
Отсутствует
...грамотный ресурс по JS (русскоязычный).
В прикреплённых разделах "Русская документация по..." в разделе разработка ссылки на неграмотные ресурсы ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Ммм, ну вполне грамотные, однако не дают полной информации. Опять же, выше упомянутый ty - catch, полагаю много чего еще. Впрочем кажется что-то нашел, подробнее ознакомлюсь, если понравится, отпишусь в вышеупомянутых темах.
ЗЫ их я просмотрел сразу, как вошел в этот раздел Разработки, однако благодарю за совет
silentium est aurum / in vino veritas
Отсутствует
Не вижу пока что ошибки - а в about:config javascript.options.showInConsole = true ? если нет, надо сделать.
Теперь видно в консоли ошибок:
Ошибка: FileIO is not defined Источник: chrome://filebd/content/filebdOverlay.xul Строка: 31
Отсутствует
...
Теперь видно в консоли ошибок:Выделить кодКод:
Ошибка: FileIO is not defined Источник: chrome://filebd/content/filebdOverlay.xul Строка: 31
Если jslib не установлена, надо хотя бы положить файл io.js из её состава рядом с filebdOverlay.xul и указать к ней соответствующий путь в <script ...>:
Я так думаю, это лишняя информация, как-никак полгода уже прошло.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Если jslib не установлена, надо хотя бы положить файл io.js из её состава рядом с filebdOverlay.xul и указать к ней соответствующий путь в <script ...>:
Он там рядом и лежит
Я так думаю, это лишняя информация, как-никак полгода уже прошло.
У меня дело так и не продвинулось с тех пор.
Отсутствует
У меня дело так и не продвинулось с тех пор.
Я предполагаю, что надо поменять слова "content" и "filebd" в src элемента <script ...>
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Расположеты то эти файы в одной папке, значит и путь у них один
Источник: chrome://filebd/content/filebdOverlay.xul <script src="chrome://filebd/content/io.js"/>
Записал всё содержимое файла io.js в filebdOverlay.xul, теперь вроде не жалуется ни на что.
Только следующая накладка. Файл не получается создать/открыть.
дальнейший код не выполняется так как fileIn определяется как false
Отсутствует
fileIn определяется как false
если ОС windows, путь надо определять с указанием диска и обратными слешами:
Расположеты то эти файы в одной папке, значит и путь у них один
Такой: http://forum.mozilla-russia.org/viewtop … 34#p167034 ?
Да, ещё в <script> не указан type="application/x-javascript"
Отредактировано Anton (31-08-2007 18:01:29)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Да, ещё в <script> не указан type="application/x-javascript"
всё равно не помогло.
если ОС windows, путь надо определять с указанием диска и обратными слешами:
Спасибо
Отсутствует
Да, ещё в <script> не указан type="application/x-javascript"
всё равно не помогло. ...
О, Господи...
Смотри сюда, Орец: http://forum.mozilla-russia.org/uploaded/filebd.xpi.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1