使用 Express Handlebars 模板引擎在 NodeJs 中复制到剪贴板

Copy to Clipboard in NodeJs with Express Handlebars template engine

我们如何在 NodeJs 中使用 express handlebar[=26= 在按钮点击时实现 复制到剪贴板 功能]模板。

我试过使用 Javascript 但它不起作用。

下面是我试过的代码:

myFile.handlebars :

<input type="button" id="linkBtn" class="btn btn-primary" onclick="copyLink()" data-toggle="tooltip" title="Copy to Clipboard" value="copy link" readonly />

<script>
  function copyLink() {
    let copyText = document.getElementById("linkBtn");
    /* Select the text field */
    copyText.select();
    /* Copy the text inside the text field */
    document.execCommand("copy");

    /* Alert the copied text */
    //alert("Copied the text: " + copyText.value);
  }
</script>

Copy to the clipboard using JS

您正在尝试从按钮复制​​文本。您可以 select 按钮文本。在任何其他标签

中添加您想要select的内容

这里有一个解决方案:

<input type="button"  class="btn btn-primary" onclick="copyLink()" data-toggle="tooltip" title="Copy to Clipboard" value="copy link" readonly />

<span id="copyText">Copy this Text</span>

<script>
  function copyLink() {
    let copyText = document.getElementById("copyText") 

    var selection = window.getSelection();

    var range = document.createRange();

    range.selectNodeContents(copyText);

    selection.removeAllRanges();

    selection.addRange(range);

    document.execCommand('copy');
  }
</script>

这是一个工作演示:https://jsfiddle.net/5mryvpc6/