访问谷歌Chrome浏览器缓存

5

是否可以在扩展程序内部访问Google Chrome的缓存?

我想编写一个扩展程序,当无法访问在线页面(例如互联网连接问题)时,加载页面的缓存版本。

更新:我知道我可以编写一个NPAPI插件,通过扩展程序访问它来实现这一点,但我不想写一个... 我想要一种没有使用NPAPI的解决方案,请。

注意:据我所知,Google Chrome不支持此功能(至少不是开箱即用的):我刚刚遇到了“无互联网访问”的情况,我被困住了...


Chrome自己不已经做到了这一点吗? - Samuel DR
1
不,缓存通常不会像那样工作。它们通常只在被告知使用自己的版本时才使用文件...再加上Chrome没有“离线工作模式”。 - Kinlan
3个回答

4

很遗憾,我99%确定在扩展程序中不使用NPAPI是不可能实现的。

Chrome扩展程序被隔离到它们自己的进程中,只能访问扩展程序文件夹中的文件。

有一些支持像chrome://favicon/这样的东西。但至少目前只有这些。

来源(Google Chrome扩展参考)


0

只需创建一个简单的插件清单,调用一个 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 的眼中它是禁忌的,所以它会被迅速阻止或删除。 :)


3
“Voilà”是法语,不是“Viola”。 :) - jldupont
你对弓弦乐器的厌恶与真正的法语人 typique laissez-faire 的态度非常不符。 ;) - AWDNUT

0

附言:我有一个疯狂的想法。扩展程序只能访问其文件夹中的文件...但Chrome将其缓存存储在Cache文件夹中。你可以尝试的是,将“缓存”文件夹复制(或移动)到扩展内的子文件夹中。扩展现在应该能够访问缓存。

无论这是否足以实际启用脱机模式......我不知道。不过,在我的Cache文件夹中,我确实看到一些HTML文件(显然还有很多图像)。

事实上,即使不使用扩展,我也可以在Chrome中打开HTML文件。因为它们存储在您的计算机上,所以即使没有互联网,您也应该能够访问它们。

附言:Cache文件夹存储在PATH-TO-CHROME/Default/Cache

附言2:有一种方法可以存储整个网页并将其归档以供以后使用。查看此扩展:

https://chrome.google.com/extensions/detail/mpiodijhokgodhhofbcjdecpffjipkle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接