>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Расширение (Не могу вывести окно и проблемы с записью в файл) http://forum.mozilla-russia.org/viewtopic.php?id=6199 |
boroda > 15-11-2005 18:07:05 |
Добрый вечер! Либо как мне вывести окно моего расширения сразу при загрузке броузера Выделить код Код:<?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; } Проблема в том, что каждый раз при записи в файл мне надо что-бы старые данные удалялись, а у меня получается они просто затираются хотя файл у меня открыт на запись т.е. если при первом вызове aData="qwerty"; |
Anton > 16-11-2005 07:41:52 |
boroda пишет
Надо добавить флаг PR_TRUNCATE: см. здесь: http://kb.mozillazine.org/Dev_:_Extensi … _:_File_IO |
Anton > 16-11-2005 08:23:48 |
"Подсмотрел" в 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, т. к. в скрытом окне могут хранить данные и другие расширения. |