我目前正在將我的 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將要執行。