gpt4 book ai didi

javascript - 使用 greasemonkey 预加载页面

转载 作者:行者123 更新时间:2023-11-29 20:05:21 25 4
gpt4 key购买 nike

我看到了一些关于预加载的问题,但其中大部分来自拥有网站并希望为用户实现一些预加载的人。我想做的是使用 greasemonkey 在一些网站上实现一些预加载以供我自己使用。

有几个我经常访问的网站,它们的“页面”就像一本书。而且有很多页面(大多数情况下每页有 1 MB+ 图像)所以我想制作一个 greasemonkey 脚本来加载接下来的 1-2 页。下一页的 URL 是可预测的(它们按顺序编号,并在数字前加上前缀)。

我应该怎么做呢?有没有办法下载网页(包括所有图像)并让 Firefox 知道它已被缓存?

最佳答案

您可以在隐藏的 iFrame 中加载页面。然后它将被缓存(基于服务器和您的 Firefox 设置)。

// ==UserScript==
// @name _Preload page(s)
// @namespace _pc
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==

if (window.top != window.self) //-- Don't run on frames or iframes.
return;

var preloadPage = "http://cheezburger.com/6555102208";

/*--- Load page in hidden iFrame.
It will then be cached per FF and server settings.
*/
$("body").append (
'<iframe class="GM_hiddenIFrame" src="' + preloadPage + '"></iframe>'
);

GM_addStyle ( (<><![CDATA[
iframe.GM_hiddenIFrame {
display: none;
}
]]></>).toString () );


请注意,添加了 window.top != window.self 位,否则脚本可能会在隐藏的 iframe 上触发,从而导致递归(可能无限)。


我通过以下方式验证了这项工作:

  1. 清除 Firefox 的缓存
  2. 在测试页上运行此脚本。
  3. 正在加载 cheezburger.com/6555102208在不同的选项卡中...
    Firebug 的 Net 面板中的几乎所有内容(包括图像)都处于 304 Not Modified 状态,这意味着它已被缓存。

    (一个全新的、无缓存的加载返回状态 200 OK。)

关于javascript - 使用 greasemonkey 预加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com