是否可以在扩展程序内部访问Google Chrome的缓存?
我想编写一个扩展程序,当无法访问在线页面(例如互联网连接问题)时,加载页面的缓存版本。
更新:我知道我可以编写一个NPAPI插件,通过扩展程序访问它来实现这一点,但我不想写一个... 我想要一种没有使用NPAPI的解决方案,请。
注意:据我所知,Google Chrome不支持此功能(至少不是开箱即用的):我刚刚遇到了“无互联网访问”的情况,我被困住了...
是否可以在扩展程序内部访问Google Chrome的缓存?
我想编写一个扩展程序,当无法访问在线页面(例如互联网连接问题)时,加载页面的缓存版本。
更新:我知道我可以编写一个NPAPI插件,通过扩展程序访问它来实现这一点,但我不想写一个... 我想要一种没有使用NPAPI的解决方案,请。
注意:据我所知,Google Chrome不支持此功能(至少不是开箱即用的):我刚刚遇到了“无互联网访问”的情况,我被困住了...
很遗憾,我99%确定在扩展程序中不使用NPAPI是不可能实现的。
Chrome扩展程序被隔离到它们自己的进程中,只能访问扩展程序文件夹中的文件。
有一些支持像chrome://favicon/
这样的东西。但至少目前只有这些。
只需创建一个简单的插件清单,调用一个 AJAX 页面,从 CDN 加载 jQuery,然后使用它来解析页面上的所有 <a>
元素,并更改 href
值以具有此前缀:http://webcache.googleusercontent.com/search?q=cache:
因此,<a href="http://stackoverflow.com/questions/blah">
变成了:
<a href="http://webcache.googleusercontent.com/search?q=cache:http://stackoverflow.com/questions/blah">
看,你正在浏览缓存,但你仍然需要进入 Google。我知道这个答案有点超出问题的范围,但它仍然解决了很多网络连接问题。
我很想写这个插件,但我敢打赌在 Google 的眼中它是禁忌的,所以它会被迅速阻止或删除。 :)
附言:我有一个疯狂的想法。扩展程序只能访问其文件夹中的文件...但Chrome将其缓存存储在Cache文件夹中。你可以尝试的是,将“缓存”文件夹复制(或移动)到扩展内的子文件夹中。扩展现在应该能够访问缓存。
无论这是否足以实际启用脱机模式......我不知道。不过,在我的Cache文件夹中,我确实看到一些HTML文件(显然还有很多图像)。
事实上,即使不使用扩展,我也可以在Chrome中打开HTML文件。因为它们存储在您的计算机上,所以即使没有互联网,您也应该能够访问它们。
附言:Cache文件夹存储在PATH-TO-CHROME/Default/Cache
附言2:有一种方法可以存储整个网页并将其归档以供以后使用。查看此扩展:
https://chrome.google.com/extensions/detail/mpiodijhokgodhhofbcjdecpffjipkle