我目前正在将我的 Web 开发工作从传统 IDE 转移到 Web 浏览器控制台。这涉及频繁编辑现有源代码,这意味着...
- 记录源,例如
console.log(myFunc.toString())
- 将文本复制到剪贴板,至少可以通过两种方式完成:
- 单击RMB控制台消息并选择Copy Message(不幸的是,这也会复制一些垃圾)
- 从消息顶部拖到LMB底部并点击Ctrl+C(遗憾的是,通过拖动选择文本容易出错并且总体上很耗时)
- (受阻)document.execCommand('复制')只能通过点击事件
- 将文本粘贴到控制台输入中
我对我想要的工作流程进行了排序:
- A级:我可以通过调用单个函数直接填充控制台输入,无需额外的鼠标或键盘交互,例如
edit("some text")
直接复制和粘贴some text
- B 级:我可以通过调用单个函数将一些文本复制到剪贴板没有DOM 更改,仅Ctrl+V对于粘贴剪贴板内容是必要的,例如
copy("some text")
- C级:与 B 层相同,但允许 DOM 更改
- X 级:涉及浏览器扩展的任何内容,以实现 A 层、B 层或 C 层解决方案
答案1
A 层解决方案无法实现,因为这需要将输入到命令行中的代码自动替换为其他代码,而这是不可能的。也就是说,没有内置的功能来实现这一点,并且扩展程序目前(从 Firefox 69 开始)无法访问命令行。
虽然可以通过copy()
命令。因此,如果您想在控制台中编辑某个函数,只需调用copy(myFunc.toString())
然后通过Ctrl+粘贴它V。
当然,这有一定的限制,因为您只能编辑普通的全局函数,而不能编辑箭头函数、对象方法或类似的东西。
对于真正的实时编辑功能,你必须等待错误 771339更优越错误 1559482将要执行。