newtab-redirect本身不支持随机跳转,但可通过其加载自定义html文件(内嵌math.random()逻辑)或配合自研扩展后台脚本实现每次新标签页随机跳转至预设网址列表中的任一目标。

当你需要让每次打开新标签页都跳转到不同网站,比如随机展示新闻、博客或学习资源,random redirect page 就是实现这种“随机跳转”的核心机制。它不是浏览器原生功能,而是依赖扩展或自定义脚本在每次触发 newtab 时动态选择一个目标 URL 并执行重定向,整个过程对用户透明,且不改变浏览器默认行为逻辑。
理解 random redirect page 的本质
random redirect page 不是一个独立页面,而是一种运行时逻辑:在新标签页加载瞬间,从预设列表中按算法(如 Math.random())选出一项 URL,再通过 location.replace() 或 chrome.tabs.update() 立即跳转。它绕过了静态配置的单一定向,实现了“一次一变”的体验。
这与 NewTab-Redirect 这类固定重定向扩展有根本区别——后者把 newtab 永久绑定到一个地址;而 random redirect page 必须在每次加载时重新计算、不可缓存、不能被搜索引擎索引为单一目标。
【必须由 JavaScript 在页面上下文或扩展后台脚本中执行】,纯 HTML 或静态 manifest.json 无法实现真随机;若仅靠服务端 302 响应,将导致所有用户共享同一随机种子,失去个体独立性。
用 NewTab-Redirect + 自定义 HTML 实现随机跳转
方法一:本地 HTML 文件驱动随机逻辑
第一步:新建一个名为 random-newtab.html 的文件,保存在本地(例如 D:\tabs\random-newtab.html)
第二步:在文件中写入以下代码(注意替换为你自己的网址列表):
<script><br/>const urls = [<br/> "https://news.ycombinator.com/",<br/> "https://lobste.rs/",<br/> "https://www.wikipedia.org/",<br/> "https://read.cv/"<br/>];<br/>const target = urls[Math.floor(Math.random() * urls.length)];<br/>location.replace(target);<br/></script>
第三步:在 Chrome 中访问 chrome://extensions/ → 找到 NewTab-Redirect → 点击“详细信息” → 开启“允许访问文件网址”
第四步:进入 NewTab-Redirect 配置页 → 在 URL 输入框填入:
file:///D:/tabs/random-newtab.html(路径需使用正斜杠,且盘符大写)→ 点击“Save”
现在每次打开新标签页,都会从四个网址中随机跳转一个。这个方案完全离线运行,不依赖网络请求,响应极快。
用 Chrome 扩展后台脚本直接接管 newtab
方法二:跳过 HTML 页面,由 background.js 直接控制跳转
第一步:创建最小扩展目录,含 manifest.json 和 background.js
第二步:manifest.json 内容如下(注意权限声明):
{
"manifest_version": 3,
"name": "Random New Tab",
"version": "1.0",
"background": { "service_worker": "background.js" },
"chrome_url_overrides": { "newtab": "blank.html" },
"permissions": ["storage", "tabs"]
}
第三步:新建 blank.html,内容仅为
(占位用,防止报错)第四步:background.js 写入:
chrome.tabs.onCreated.addListener(tab => {
if (tab.url === "chrome://newtab/") {
const urls = ["https://github.com/trending", "https://arxiv.org/list/cs/recent", "https://hnrss.org/frontpage"];
const target = urls[Math.floor(Math.random() * urls.length)];
chrome.tabs.update(tab.id, { url: target });
}
});
第五步:在 chrome://extensions/ 中启用“开发者模式”,点击“加载已解压的扩展程序”,选择该目录
这个方法更底层,不经过任何中间页面,跳转链路最短。但要注意:【chrome_url_overrides 只能指向扩展内文件,不能直接执行 JS,所以必须用 blank.html + service worker 组合绕过限制】。
验证随机性是否生效
打开五个新标签页,观察地址栏变化:如果连续两次出现相同域名,说明随机种子未重置或列表太小;建议列表至少含 6 个以上差异明显的站点。
按 Ctrl+Shift+J 打开 DevTools → 切换到 Application → Clear storage → 勾选 “Cache storage” 和 “Service workers” → 点击 “Clear site data”,可强制刷新随机逻辑缓存。
若使用本地 file:// 协议,在某些 Chrome 版本中可能因安全策略阻止跳转,此时必须开启“允许访问文件网址”权限,否则页面会白屏卡住。











