浏览器控制台写的代码在网页刷新后就失效了
javascript吧
全部回复
仅看楼主
level 1
Fun_3692 楼主
初学JS,在浏览器控制台写了一段代码如下:
//间隔10秒刷新页面
setTimeout('window.location.reload()',1000);
...//后续处理
但是只刷新了一次,这段代码就失效了,原因是页面刷新后JS也重新加载。
如何让这段代码一直执行,而不失效呢?
2025年04月04日 12点04分 1
level 4
装油猴脚本
2025年04月04日 23点04分 2
level 4
用iframe标签,套在页面里面,刷新子页面就行了
2025年04月05日 00点04分 3
谢谢。但是目标网页不支持,请问如何解决:Refused to display '<URL>' in a frame because it set 'X-Frame-Options' to 'deny'.
2025年04月05日 08点04分
@I小包菜I 谢谢指教。油猴搞定。
2025年09月16日 01点09分
level 5
重新加载后就没有这个代码了
2025年04月05日 08点04分 4
level 12
本地存储撒
2025年04月20日 04点04分 5
level 1
这能改网页就好了,我直接吧百度首页改成我是李宏彦他爹
2025年04月23日 03点04分 6
level 3
控制台写的刷新就是会失效啊
2025年10月05日 12点10分 7
level 8
用tampermonkey一直执行
2025年10月06日 02点10分 8
谢谢,正是此法,已经解决。
2025年10月11日 00点10分
level 5
发现浏览器控制台里写的代码在网页刷新后就失效了,这是因为控制台输入的代码只运行在当前页面的临时上下文中,刷新页面会重新加载整个文档,所有临时执行的代码都会被清空。我会告诉你为什么会这样,以及 3 种实用方法让代码 “持久生效”,从临时测试到永久生效都覆盖,新手也能快速上手 ym.miaoshou.net/news/249.html。
一、先理解核心原因
浏览器控制台(Console)的本质是 “临时执行环境”:
你在控制台输入的 JS 代码,只会在当前页面的内存中执行,不会被保存到任何文件(本地 / 服务器);
刷新页面时,浏览器会重新请求服务器的 HTML/CSS/JS 文件,重建页面上下文,之前在控制台执行的代码、创建的变量 / 函数都会被销毁,自然就失效了 ym.miaoshou.net/doctor/1316.html 。
简单说:控制台代码是 “一次性的”,页面刷新 = 环境重置。
二、3 种方法让代码持久生效(按需求选择)
方法 1:临时生效(适合调试 / 测试,刷新后失效但无需改文件)
通过「浏览器开发者工具的 “本地覆盖”/“代码段”」保存代码,每次打开控制台可一键执行,不用重复输入。
推荐:使用 Chrome 的「Snippets(代码段)」
这是最方便的临时方案,代码保存在浏览器中,可重复执行:
打开 Chrome 控制台(F12 / 右键检查),切换到「Sources」面板;
左侧找到「Snippets」选项(如果没看到,点左上角的 >> 展开);
点击「New snippet」,命名(比如myCode.js),粘贴你要执行的代码;
按「Ctrl+S」保存,点击右下角的「▶️ Run」执行代码;
刷新页面后,只需再次打开 Snippets,点击 Run 就能重新执行,不用重复输入。
示例:比如你想让页面刷新后仍能执行 “修改标题” 的代码,在 Snippets 里写:
// 示例代码:修改页面标题,添加点击事件
document.title = "控制台代码持久化测试";
document.body.style.background = "#f5f5f5";
// 给按钮加点击事件
const btn = document.createElement('button');
btn.innerText = "测试按钮";
btn.onclick = () => alert("代码生效了!");
document.body.appendChild(btn);
方法 2:页面刷新后自动执行(利用「beforeunload / 本地存储」)
通过localStorage保存代码执行状态,或监听load事件,让页面刷新后自动重新执行代码,无需手动点 Run。
完整示例(刷新后自动执行) ym.miaoshou.net/hospital/252.html
在控制台输入以下代码,刷新页面后代码会自动执行:
// 1. 定义你要持久执行的核心逻辑
function myPersistentCode() {
console.log("页面刷新后,代码自动执行了!");
// 你的业务逻辑:比如修改样式、添加交互
document.body.style.color = "#ff6b6b";
document.querySelector('h1')?.style.fontSize = "36px";
}
// 2. 立即执行一次
myPersistentCode();
// 3. 监听页面加载事件,刷新后自动执行
window.addEventListener('load', myPersistentCode);
// (可选)用localStorage保存状态,避免重复绑定事件
if (!localStorage.getItem('codeBound')) {
window.addEventListener('load', myPersistentCode);
localStorage.setItem('codeBound', 'true');
}
注意:关闭浏览器 / 清除本地存储(localStorage)后,该绑定会失效,适合临时调试。
方法 3:永久生效(修改页面源码 / 本地代理,适合长期使用)
如果想让代码每次打开页面都自动生效(无需手动操作),需要修改页面的源码或通过工具注入代码:
场景 A:本地 HTML 文件(自己写的页面)
直接把代码写到 HTML 文件的<script>标签里,保存后刷新页面就会永久生效:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>永久生效示例</title>
</head>
<body>
<h1>测试标题</h1>
<!-- 把控制台的代码写到这里 -->
<script>
// 你的核心代码
document.title = "永久生效的标题";
document.querySelector('h1').style.color = "#4ecdc4";
</script>
</body>
</html>
场景 B:在线网页(无法修改源码)
用浏览器插件注入代码,实现永久生效:
安装插件:比如 Chrome 的「Tampermonkey(油猴)」或「Violentmonkey」;
新建脚本,设置 “匹配的网址”(比如https://xxx.com/*);
把要执行的代码粘贴到脚本中,保存后,打开对应网页会自动执行代码,刷新 / 重启浏览器都生效。
油猴脚本示例:
// ==UserScript==
// @name 自定义页面脚本
// @namespace http://tampermonkey.net/
// @version 0.1
// @Description 让控制台代码永久生效
// @Author
// @match https://目标网址.com/* // 替换成你要生效的网址
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 你的核心代码
document.body.style.background = "#f9f9f9";
console.log("油猴脚本:代码永久生效了!");
})();
2026年01月16日 02点01分 10
level 5
三、新手避坑指南
localStorage 注意事项:
保存的是字符串,存对象需用JSON.stringify(),取的时候用JSON.parse();
清除方式:控制台输入localStorage.clear(),或在「Application→Local Storage」中删除对应键值 zx.miaoshou.net/hospital/298.html。
油猴脚本匹配规则:
@宇宙 要写对(比如https://*.baidu.com/*匹配所有百度子域名),否则脚本不会执行;
Snippets 备份:
代码段保存在浏览器本地,换设备 / 清除浏览器数据会丢失,可右键代码段选择「Save」导出备份 zx.miaoshou.net/doctor/1323.html。
总结
控制台代码刷新失效的核心原因:代码运行在临时上下文,刷新页面会重置环境;
方案选型 zx.miaoshou.net/news/305.html:
临时调试 → 用「Snippets 代码段」(一键执行,不用重复输入);
刷新后自动执行 → 监听load事件 + localStorage(临时生效);
永久生效 → 改本地 HTML 源码,或用油猴插件注入(在线网页);
关键技巧:优先用 Snippets 做临时测试,长期需求用油猴脚本,避免重复写代码。
你可根据自己的需求选择对应的方法,比如只是临时调试选方法 1,想让在线网页永久生效选方法 3(油猴),新手先从 Snippets 入手,操作最简单。
2026年01月16日 02点01分 11
level 8
也可以在控制台修改他js的内容
2026年02月05日 04点02分 12
1