如何从浏览器/ 维基百科HTML表格复制/粘贴文本并将其保存为VSCode中的HTML?

How to copy/paste text from browser / Wikipedia HTML table and save it as HTML in VSCode?

提问人:Lance 提问时间:11/1/2023 更新时间:11/1/2023 访问量:51

问:

我知道剪贴板必须有复制文本的 HTML 副本 (CMD+C),因为当我从维基百科复制像这个表这样的 HTML 表格时,它会粘贴到电子表格 (CMD+V) 中,就好像它知道 HTML 数据一样:

enter image description here

我如何在 VSCode 中执行与 Google 表格相同的操作?也就是说,我想将我复制到 VSCode 的原始 HTML 粘贴到 VSCode 中,我该怎么做?我想我可以右键单击检查元素并复制外部 HTML,但有没有更直接的方法?

HTML visual-studio-code 剪贴板 复制粘贴

评论

0赞 starball 11/1/2023
您的浏览器可能正在复制文本,基本上只是文本内容(带有一些丰富的信息,如链接),制表符分隔表行中的条目,换行符分隔行(它比这更复杂,但不是我有专业知识的东西),这与我在粘贴到 VS Code 时看到的内容一致。不,我不知道除了您在问题帖子末尾描述的之外,还有更直接的方法。
0赞 starball 11/1/2023
我认为这个问题是否与主题有关是值得商榷的(有点取决于它对 VS Code 的程度)。我屈服了,投下了接近的一票。

答:

0赞 James Hibbard 11/1/2023 #1

TL;DR:使用这个:https://marketplace.visualstudio.com/items?itemName=d3v.pastespecial


更长的答案:

没错,剪贴板存储了多种格式的复制数据,例如纯文本和 HTML,正如您在 Google 表格示例中演示的那样。

在浏览器上下文中,您可以使用 Clipbopard API 访问此数据,但出于安全原因,这需要由用户操作触发。

此演示将通过安全连接在 Chrome 中运行:

document.addEventListener('click', async () => {
  try {
    const clipboardItems = await navigator.clipboard.read();
    for (const clipboardItem of clipboardItems) {
      for (const type of clipboardItem.types) {
        if (type === 'text/html') {
          const blob = await clipboardItem.getType(type);
          const text = await new Response(blob).text();
          console.log('HTML content from clipboard:', text);
        }
      }
    }
  } catch (err) {
    console.error('Failed to read clipboard:', err);
  }
});

粘贴到 VSCode 时,无论剪贴板上有什么内容,它都会始终粘贴纯文本。

这里有一个问题在这里讨论:https://github.com/Microsoft/vscode/issues/57577

从上一条评论中可以看出,目前对实现直接粘贴 HTML 功能的建议是使用以下扩展名:https://marketplace.visualstudio.com/items?itemName=d3v.pastespecial

安装扩展后,将一些文本从 Web 浏览器复制到剪贴板,然后在 VS Code 中点击 + + 并选择 HTML 源,HTML 将粘贴到编辑器中。CtrlShiftV

我刚刚尝试了一下,它在 Linux 上运行良好。扩展页面说它也支持 Windows,但看起来 macOS 支持有限。


编辑:射击!看起来你在 Mac 上。我想这行不通,在这种情况下,右键单击检查元素并复制外部 HTML 是(可悲的)要走的路。