能否编写可在后台反复跳转到页面底部的Bookmarklet?
自动滚动Bookmarklet及后台执行实现方案
一、基础自动滚动Bookmarklet
可以直接用Bookmarklet实现Facebook页面的自动反复滚动,代码如下:
javascript:(function(){ let scrollInterval = setInterval(() => { // 滚动到当前页面底部 window.scrollTo(0, document.body.scrollHeight); // 检测是否已加载完所有内容(判断滚动后页面高度是否变化) const lastPageHeight = document.body.scrollHeight; setTimeout(() => { if (document.body.scrollHeight === lastPageHeight) { clearInterval(scrollInterval); alert('已滚动至页面底部,自动停止'); } }, 1000); // 等待1秒让页面加载新内容 }, 2000); // 每2秒执行一次滚动 })();
使用方法:
- 在浏览器中新建书签,将上面的代码粘贴到书签的「URL」栏,命名为「Facebook自动滚动」
- 打开Facebook页面后,点击该书签即可启动自动滚动
二、后台执行的限制与解决方案
浏览器为了节省性能,会限制后台标签页的定时器执行频率(比如Chrome会把setInterval的间隔拉长到1秒以上,甚至暂停),单纯的Bookmarklet在后台标签页无法正常工作。要实现后台自动滚动,建议用浏览器扩展:
Chrome扩展示例(Manifest V3)
- 创建一个文件夹,新建以下两个文件:
manifest.json(扩展配置文件)
{ "manifest_version": 3, "name": "FB自动滚动助手", "version": "1.0", "permissions": ["activeTab", "scripting"], "action": { "default_title": "开始/停止滚动" }, "background": { "service_worker": "background.js" } }
background.js(后台逻辑)
let isRunning = false; let scrollTimer; // 点击扩展图标触发开始/停止 chrome.action.onClicked.addListener(async (tab) => { if (isRunning) { clearInterval(scrollTimer); isRunning = false; chrome.action.setTitle({title: "开始自动滚动"}); return; } isRunning = true; chrome.action.setTitle({title: "停止自动滚动"}); // 每2秒触发一次滚动 scrollTimer = setInterval(async () => { await chrome.scripting.executeScript({ target: {tabId: tab.id}, func: () => { window.scrollTo(0, document.body.scrollHeight); const currentHeight = document.body.scrollHeight; // 检测是否已加载完所有内容 setTimeout(() => { if (document.body.scrollHeight === currentHeight) { chrome.runtime.sendMessage({type: "stop"}); } }, 1000); } }); }, 2000); }); // 接收停止信号 chrome.runtime.onMessage.addListener((msg) => { if (msg.type === "stop") { clearInterval(scrollTimer); isRunning = false; chrome.action.setTitle({title: "开始自动滚动"}); } });
安装扩展:
- 打开Chrome浏览器,进入「扩展程序」页面(地址栏输入
chrome://extensions/) - 开启「开发者模式」,点击「加载已解压的扩展程序」,选择刚才创建的文件夹
- 扩展图标会出现在浏览器工具栏,打开Facebook页面后点击图标即可启动后台自动滚动
内容的提问来源于stack exchange,提问作者d-b
相关产品推荐
相关产品推荐

