2013-02-26 79 views
1

我想要获取Firefox扩展中的页面大小。 之前,我用这个代码:获取Firefox的扩展页面大小

var pageSize   = null, 
    cacheService  = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService), 
    httpCacheSession = cacheService.createSession("HTTP", 0, true), 
    cacheEntryDescriptor; 

httpCacheSession.doomEntriesIfExpired = false; 

cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false); 

if (cacheEntryDescriptor) { 
    pageSize = Math.round(cacheEntryDescriptor.dataSize/1024 * 100)/100; 
} 

但更新浏览器后,我得到的错误:

NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICacheSession.openCacheEntry] 

在行:

cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false); 

如何解决这个问题呢?

回答

0

openCacheEntry从主线程调用时失败,请使用asyncOpenCacheEntry