2011-10-26 33 views
1

我正在尝试编写一个Chrome扩展,它需要一个URL并显示浏览器需要显示URL指向的页面的所有资源,以及它们在网络上的大小(压缩)和客户端的大小(解压缩)。在Chrome扩展中捕获资源大小

我已经能够通过将听众添加到chrome.experimental.webRequest.onCompleted来挖掘所需的资源。但是,此回调不允许我查看标题的大小。

我认为,添加监听到chrome.experimental.devtools.network.onRequestFinished这就要求chrome.experimental.devtools.network.getHAR会做的伎俩,但我不能使用任何在chrome.experimental.devtools.network,因为我得到的错误Uncaught TypeError: Cannot read property 'network' of undefined

任何想法?

+0

关于你得到的错误,让你阅读并理解[如何使用实验性API(HTTP:/ /code.google.com/chrome/extensions/dev/experimental.html#using)?此外,您是否知道[这些API的限制](http://code.google.com/chrome/extensions/dev/experimental.html#overview)? – Alasdair

+0

对两者都是。这仅仅是一个内部使用的工具,而且我打包了我使用扩展的Chrome版本,以便将来使用它。我解决了这个问题的是这样: chrome.experimental.webRequest.onResponseStarted.addListener( 功能(详细信息){ 为(VAR I = 0; I Andrew

回答

3

如果压缩后的大小是在标题,你可以这样说:

chrome.experimental.webRequest.onResponseStarted.addListener(
    function(details) { 
    for (var i = 0; i < details.responseHeaders.length; ++i) { 
     if (details.responseHeaders[i].name === 'Content-Length') { 
     console.log(details.url + ': ' + details.responseHeaders[i].value + 
        'bytes'); 
     } 
    } 
    }, 
    {}, 
    ["responseHeaders"]);