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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№115-11-2005 18:07:05

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Расширение (Не могу вывести окно и проблемы с записью в файл)

Добрый вечер!
У меня еще два вопроса. Возможно ли вывести окно перед загрузкой окна main-window (файл browser.xul)?


Либо как мне вывести окно моего расширения сразу при загрузке броузера
пробовал так

Выделить код

Код:

<?xml version="1.0"?>
<overlay id="checklicenseOverlay" 
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <window id="main-window">
     <script type="application/x-javascript" src="chrome://foo/content/foo.js" />
  </window>
</overlay>

файл foo.js

Выделить код

Код:

window.addEventListener ("load", checkAndSave, true);
function checkAndSave()
{
  if(document.getElementById("content"))
  {
window.open("chrome://foo/content/dialogWindow.xul","dialogWindow","width=200,height=90,modal,centerscreen,ch

rome,resizable=yes");
  }
}

Так окно появляется 4 раза :(.

Также имею трудности с записью в файл.
Пишу в файл следующим образом

Выделить код

Код:

function writeFile(aData)
{
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
	var file = 

Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).g

et("ProfD", Components.interfaces.nsIFile);
        file.append("tmp.dat");
	var foStream = 

Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileO

utputStream);
	foStream.init(file, 0x02, 0664, 0);
	foStream.write(aData, aData.length);
	foStream.close();
        return false;
}

Проблема в том, что каждый раз при записи в файл мне надо что-бы старые данные удалялись, а у меня получается

они просто затираются хотя файл у меня открыт на запись

Выделить код

Код:

foStream.init(file, 0x02, 0664, 0);

т.е. если при первом вызове aData="qwerty";
при втором aData="123", то в файле у меня остается 123rty, но я хочу получить 123.
Посоветуйте к мне с этим бороться.
Спасибо

Отсутствует

 

№216-11-2005 07:41:52

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Расширение (Не могу вывести окно и проблемы с записью в файл)

boroda пишет

...остается 123rty, но я хочу получить 123...

Надо добавить флаг PR_TRUNCATE:

Выделить код

Код:

foStream.init(file, 0x02 | 0x20, 0664, 0);

см. здесь: http://kb.mozillazine.org/Dev_:_Extensi … _:_File_IO


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№316-11-2005 08:23:48

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Расширение (Не могу вывести окно и проблемы с записью в файл)

...мне вывести окно моего расширения сразу при загрузке броузера
пробовал так...Так окно появляется 4 раза...

"Подсмотрел" в Xpoint Sidebar (http://xpoint.ru/sidebar/).

Выделить код

Код:

window. addEventListener ("load", checkAndSave, true);
function checkAndSave()
{
    var appShell = Components. classes ["@mozilla.org/appshell/appShellService;1"]. getService (Components. interfaces. nsIAppShellService);
    var hiddenWnd = appShell. hiddenDOMWindow;
    if (typeof (hiddenWnd. firstStartFlag) == 'undefined')
    {
        hiddenWnd. firstStartFlag = true;
        window. open ("chrome://foo/content/dialogWindow.xul", "dialogWindow", "width=200,height=90,modal,centerscreen,chrome,resizable=yes");
    }
}

Только надо придумать оригинальное название для firstStartFlag, т. к. в скрытом окне могут хранить данные и другие расширения.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

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