software:firefox-xpi-programming:0ther
Содержание
Разные куски кода
Настройки: Чтение-запись
var prefs = Components .classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService) .getBranch("extensions.ADDONNAMEGOESHERE."); var string = prefs.getCharPref("PREFERENCE NAME"); prefs.setCharPref("PREFERENCE NAME", string); var bool = prefs.getBoolPref("PREFERENCE NAME"); prefs.setBoolPref("PREFERENCE NAME", bool);
Read Chrome files
function chromeToPath (aPath) { if (!aPath || !(/^chrome:/.test(aPath))) return; //not a chrome url var rv; var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces["nsIIOService"]); var uri = ios.newURI(aPath, "UTF-8", null); var cr = Components.classes['@mozilla.org/chrome/chrome-registry;1'].getService(Components.interfaces["nsIChromeRegistry"]); rv = cr.convertChromeURL(uri).spec; if (/^file:/.test(rv)) rv = this.urlToPath(rv); else rv = this.urlToPath("file://"+rv); return rv; } function urlToPath (aPath) { if (!aPath || !/^file:/.test(aPath)) return ; var rv; var ph = Components.classes["@mozilla.org/network/protocol;1?name=file"] .createInstance(Components.interfaces.nsIFileProtocolHandler); rv = ph.getFileFromURLSpec(aPath).path; return rv; }
Чтение из файла
function getContents(aURL){ var ioService=Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var scriptableStream=Components .classes["@mozilla.org/scriptableinputstream;1"] .getService(Components.interfaces.nsIScriptableInputStream); var channel=ioService.newChannel(aURL,null,null); var input=channel.open(); scriptableStream.init(input); var str=scriptableStream.read(input.available()); scriptableStream.close(); input.close(); return str; } try{ alert(getContents("chrome://browser/content/browser.css")); }catch(e){alert(e)}
Запись в файл
function doXmlStuff () { var somefile = chromeToPath("chrome://path/to/file"); var xmlDoc; var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(somefile); if (!(file.exists())) { var fcStream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance(Components.interfaces.nsIFileOutputStream); fcStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0); // write, create, truncate var data = '<xml><rootnode></rootnode>'; fcStream.write(data,data.length); fcStream.close } xmlDoc = document.implementation.createDocument("","",null); xmlDoc.load("chrome://piratequesting/content/trainingLog.xml"); xmlDoc.onload = function () { xmlDoc.documentElement.appendChild(....whatever you want to append....); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance(Components.interfaces.nsIFileOutputStream); //clear the file for writing the new doc foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0); // write, create, truncate var ser = new XMLSerializer(); //write the serialized XML to file ser.serializeToStream(xmlDoc, foStream, ""); foStream.close(); } }
software/firefox-xpi-programming/0ther.txt · Последнее изменение: 2017/03/23 21:59 — 127.0.0.1