转载自:https://www.v2ex.com/t/926890
多开一个标签页,访问一个需要过验证但又不会有交互请求的链接,例如:
装个自动刷新的插件,我用的是 GitHub 随便找的:
https://github.com/Claxtastic/just-refresh ( jquery.min.js 已经和官网的对比过是一致的)
我设置的间隔是 3 秒,对我来说很管用,希望能帮到你们。
原理很简单,用别的更优雅的方式自然也可以实现。
油猴脚本
油猴版本,不想装油猴就直接在对话页面的 DevTools – Console 里执行。 优雅一点,不需要多开个标签页了。 应该没人太在意 DevTools – Network 里有很多 404 请求吧?
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function() {
'use strict';
setInterval(function(){
fetch('https://chat.openai.com/404');
}, 3000);
})();
上面这个油猴脚本仅仅 fetch 404 似乎没有自动刷新那么有效,我实测还是要刷新了,干脆用 iframe 了,写法可能不好,欢迎指点:
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function () {
var iframe = document.createElement("iframe");
iframe.id = "heartbeat";
iframe.style = "display:none";
iframe.name = "heartbeat";
iframe.src = "https://chat.openai.com/404/";
var fn = function () {
setTimeout(function(){
iframe.src = "https://chat.openai.com/404/" + Math.random();
}, 3000);
};
if (iframe.attachEvent) {
iframe.attachEvent("onload", fn);
} else {
iframe.onload = fn;
}
document.body.insertBefore(iframe, document.body.firstChild);
})();
上面的油猴脚本占用太高了,风扇呼呼的。 实测 robots.txt 也有效(fetch 可能失效大概是 Cloudflare 对 Headers 的检测?)。 下面是 ChatGPT heartbeat 再也不改版,未来如果 robots.txt 无效了可以自己修改链接为 404,如果觉得每5秒请求一次太频繁了可以自己调大时间间隔。
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/chat/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function () {
var iframe = document.createElement("iframe");
iframe.id = "heartbeat";
iframe.style = "display:none";
iframe.name = "heartbeat";
iframe.src = "https://chat.openai.com/robots.txt";
var fn = function () {
setTimeout(function(){
document.getElementById('heartbeat').contentWindow.location.reload(true);
}, 5000);
};
if (iframe.attachEvent) {
iframe.attachEvent("onload", fn);
} else {
iframe.onload = fn;
}
document.body.insertBefore(iframe, document.body.firstChild);
})();