<?xml version="1.0" encoding="UTF-8"?> <page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript"><![CDATA[ var ioService = Components.classes['@mozilla.org/network/io-service;1'] .getService(Components.interfaces.nsIIOService); alert(ioService); ]]></script> </page>
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
user_pref("capability.principal.codebase.test.granted", "UniversalXPConnect"); user_pref("capability.principal.codebase.test.id", "File URL");
netscape.security.PrivilegeManager .enablePrivilege('UniversalXPConnect'); var WindowMediator = Components .classes['@mozilla.org/appshell/window-mediator;1'] .getService(Components.interfaces.nsIWindowMediator); var browser = WindowMediator.getMostRecentWindow('navigator:browser'); alert(browser.gBrowser.mTabs.length);
var browsers = WindowMediator.getEnumerator('navigator:browser'); var browser; while (browsers.hasMoreElements()) { browser = browsers.getNext().QueryInterface(Components.interfaces.nsIDOMWindowInternal); browser.BrowserTryToCloseWindow(); }
var file = Components.classes['@mozilla.org/file/local;1'] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath('C:\\temp\\temp.txt');
file.initWithPath('C:\\temp\\temp.txt'); if (file.exists()) file.remove(false); file.create(file.NORMAL_FILE_TYPE, 0666);
方法名称 |
描述 |
nsILocalFile.exists() |
确定文件是否存在 |
nsILocalFile.isWriteable() |
确定文件是否可以写入. |
nsILocalFile.isReadable() |
确定文件是否可以读取. |
nsILocalFile.isExecutable() |
确定文件是否可以执行. |
nsILocalFile.isHidden() |
确定文件是否是隐藏文件 |
nsILocalFile.isDirectory() |
确定引用是否指向一个目录. |
nsILocalFile.isFile() |
确定引用是否指向一个文件。 |
nsILocalFile.isSymlink() |
确定引用是否指向一个符号链接. |
file.initWithPath('C:\\'); file.append('Documents and Settings'); file.append('All Users'); file.append('Documents');
file.initWithPath('C:\\'); var children = file.directoryEntries; var child; var list = []; while (children.hasMoreElements()) { child = children.getNext().QueryInterface(Components.interfaces.nsILocalFile); list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : '')); } alert(list.join('\n'));
file.initWithPath('C:\\temp\\temp.txt'); backupFolder = file.parent.parent; // C:\ backupFolder.append('backup'); // C:\backup backupFolder.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0666); file.copyTo(backupFolder, file.leafName+'.bak');
var path = 'C:\\temp\\temp.txt'; var file = Components.classes['@mozilla.org/file/local;1'] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); var ioService = Components.classes['@mozilla.org/network/io-service;1'] .getService(Components.interfaces.nsIIOService); var url = ioService.newFileURI(file); var fileURL = url.spec; alert(fileURL); // "file:///C:/temp/temp.txt"
var url = 'file:///C:/temp/test.txt'; var ioService = Components.classes['@mozilla.org/network/io-service;1'] .getService(Components.interfaces.nsIIOService); var fileHandler = ioService.getProtocolHandler('file') .QueryInterface(Components.interfaces.nsIFileProtocolHandler); var file = fileHandler.getFileFromURLSpec(url); var path = file.path; alert(path); // "C:\temp\temp.txt"
file.initWithPath('C:\\temp\\temp.txt'); var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1'] .createInstance(Components.interfaces.nsIFileInputStream); fileStream.init(file, 1, 0, false); var binaryStream = Components.classes['@mozilla.org/binaryinputstream;1'] .createInstance(Components.interfaces.nsIBinaryInputStream); binaryStream.setInputStream(fileStream); var array = binaryStream.readByteArray(fileStream.available()); binaryStream.close(); fileStream.close(); alert(array.map( function(aItem) {return aItem.toString(16); } ).join(' ').toUpperCase( ));
var array = [88, 85, 76]; file.initWithPath('C:\\temp\\temp.txt'); if (file.exists()) file.remove(true); file.create(file.NORMAL_FILE_TYPE, 0666); var fileStream = Components.classes['@mozilla.org/network/file-output-stream;1'] .createInstance(Components.interfaces.nsIFileOutputStream); fileStream.init(file, 2, 0x200, false); var binaryStream = Components.classes['@mozilla.org/binaryoutputstream;1'] .createInstance(Components.interfaces.nsIBinaryOutputStream); binaryStream.setOutputStream(fileStream); binaryStream.writeByteArray(array , array.length); binaryStream.close(); fileStream.close();
file.initWithPath('C:\\temp\\temp.txt'); var charset = 'Shift_JIS'; var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1'] .createInstance(Components.interfaces.nsIFileInputStream); fileStream.init(file, 1, 0, false); var converterStream = Components.classes['@mozilla.org/intl/converter-input-stream;1'] .createInstance(Components.interfaces.nsIConverterInputStream); converterStream.init(fileStream, charset, fileStream.available(), converterStream.DEFAULT_REPLACEMENT_CHARACTER); var out = {}; converterStream.readString(fileStream.available(), out); var fileContents = out.value; converterStream.close(); fileStream.close(); alert(fileContents);
var string = '\u5909\u63db\u30c6\u30b9\u30c8'; file.initWithPath('C:\\temp\\temp.txt'); file.create(file.NORMAL_FILE_TYPE, 0666); var charset = 'EUC-JP'; var fileStream = Components.classes['@mozilla.org/network/file-output-stream;1'] .createInstance(Components.interfaces.nsIFileOutputStream); fileStream.init(file, 2, 0x200, false); var converterStream = Components.classes['@mozilla.org/intl/converter-output-stream;1'] .createInstance(Components.interfaces.nsIConverterOutputStream); converterStream.init(fileStream, charset, string.length, Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); converterStream.writeString(string); converterStream.close(); fileStream.close();
var converter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'] .getService(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = 'EUC-JP'; var unicode_str = '\u5909\u63db\u30c6\u30b9\u30c8'; var eucjp_str = converter.ConvertFromUnicode(unicode_str);
converter.charset = 'ISO-2022-JP'; var unicode_str = converter.ConvertToUnicode(iso2022jp_str);
var pref = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch); var dir = pref.getCharPref('browser.download.lastDir'); alert(decodeURIComponent(escape(dir)));
var string = 'This is test.'; pref.setCharPref('extensions.myextension.testPref', unescape(encodeURIComponent(string)));
数据类型 |
获取 |
设置 |
Boolean |
getBoolPref(prefname) |
setBoolPref(prefname) |
Integer |
getIntPref(prefname) |
setIntPref(prefname) |
Text string |
getCharPref(prefname) |
setCharPref(prefname) |
var browser = document.getElementById('browser'); var ioService = Components.classes['@mozilla.org/network/io-service;1'] .getService(Components.interfaces.nsIIOService); var referrer = ioService.newURI('http://www.gihyo.co.jp/', null, null); browser.loadURI('http://www.gihyo.co.jp/magazines/SD', referrer);
var content = encodeURIComponent('password=foobar'); var referrer = null; var postData = Components.classes['@mozilla.org/io/string-input-stream;1'] .createInstance(Components.interfaces.nsIStringInputStream); content = 'Content-Type: application/x-www-form-urlencoded\n'+ 'Content-Length: '+content.length+'\n\n'+ content; postData.setData(content, content.length); var flags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE; browser.loadURIWithFlags('http://piro.sakura.ne.jp/', flags, referrer, null, postData);