牛逼!只需一行代码,任意网页秒变可编辑!

大家好,我是石小石!


在我们日常工作中,可能会遇到截图页面的场景,有时页面有些内容不符合要求,我们可能需要进行一些数值或内容的修改。如果你会PS,修改内容难度不高,如果你是前端,打开控制台也能通过修改dom的方式进行简单的文字修改。

今天,我就来分享一个冷门又实用的前端技巧 ------ 只需一行 JavaScript 代码,让任何网页瞬间变成可编辑的! 先看看效果:

甚至,还可以插入图片等媒体内容

如何实现

很难想象,这么炫酷的功能,居然只需要在控制台输入一条指令:

js 复制代码
document.designMode = "on";

打开浏览器控制台(F12),复制粘贴这行代码,回车即可。

如果你想关闭此功能,输入document.designMode = "off"即可。

Document:designMode 属性

MDN是这样介绍的:

document.designMode 控制整个文档是否可编辑。有效值为 "on""off"。根据规范,该属性默认为 "off"。Firefox 遵循这一标准。早期版本的 Chrome 和 IE 默认为 "inherit"。从 Chrome 43 开始,默认为 "off" 并不再支持 "inherit"。在 IE6-10 中,该值为大写。

兼容性方面,基本上所有浏览器都是支持的。

借助次API,我们也能实现Iframe嵌套页面的编辑:

js 复制代码
iframeNode.contentDocument.designMode = "on";

关联API

与designMode关联的API其实还有contentEditable和execCommand(已弃用,但部分浏览器还可以使用)。

contentEditabledesignMode功能类似,不过contentEditable可以使特定的 DOM 元素变为可编辑,而designMode只能使整个文档可编辑。

特性 contentEditable document.designMode
作用范围 可以使单个元素可编辑 可以使整个文档可编辑
启用方式 设置属性为 truefalse 设置 document.designMode = "on"
适用场景 用于指定某些元素,如 <div>, <span> 用于让整个页面变为可编辑
兼容性 现代浏览器都支持 现代浏览器都支持,部分老旧浏览器可能不支持

document.execCommand() 方法允许我们在网页中对内容进行格式化、编辑或操作。它主要用于操作网页上的可编辑内容(如 <textarea> 或通过设置 contentEditabledesignMode 属性为 "true" 的元素),例如加粗文本、插入链接、调整字体样式等。由于它已经被W3C弃用,所以本文也不再介绍了。

相关推荐
程序员黑豆6 小时前
鸿蒙应用开发:Flex 组件从入门到实战
前端·华为·harmonyos
大爱编程♡6 小时前
Vue3+TypeScript+element-plus的文章管理项目(配后端接口)-退出及文章管理页面
前端·javascript·typescript
先吃饱再说6 小时前
React 组件设计:从 Props 传递到组件封装
前端·react.js
独立开阀者_FwtCoder6 小时前
最近做了一个健身小程序:智形健身助手,健身的佬们来提点意见
前端·javascript·github
舒灿6 小时前
喵ing Tab 1.0.0 正式发布
前端·ai编程
葡萄城技术团队6 小时前
当表格数据来自外部系统:SpreadJS 如何让异步公式一键刷新
前端
小徐_23336 小时前
Open Wot 1.0.5 发布:让 AI 接入 wot-ui,只需要两条命令
前端·uni-app·ai编程
Android研究员7 小时前
Android进阶之事件分发机制深度剖析
android·前端·面试
Csvn7 小时前
🛡️ 前端水印方案全解析——从「能被 F12 删掉」到「删不掉」的反破解实战
前端
学网安的肆伍7 小时前
【046-WEB攻防篇】注入工具&SQLMAP&Tamper编写&指纹修改&高权限操作&目录架构
前端·架构