将 clipboard.js 与生成的 PHP 输入结合使用

Using clipboard.js with generated PHP input

我没有使用 JScript 的经验,并且在没有其他选择的情况下只使用它。 但我希望我网站的用户可以选择将特定生成的 PHP-代码复制到他的剪贴板中。

我有以下代码

<?php 
    echo'<button class="btn" data-clipboard-text="'. htmlspecialchars("<pre><code>", ENT_HTML5) . $newText . htmlspecialchars("</code></pre>", ENT_HTML5) .'">Copy to Clipboard</button>';
?>
<script src="./clipboard.js"></script>
<script>
    var btn = document.getElementById('btn');
    var clipboard = new Clipboard(btn);
    clipboard.on('success', function(e) {
        console.log(e);
    });
    clipboard.on('error', function(e) {
        console.log(e);
    });
</script>

但我在控制台中收到此错误消息:

TypeError: First argument must be a String, HTMLElement, HTMLCollection, or NodeList

throw new TypeError('First argument must be a String, HTMLElement, HTMLCollectio...

第 152 行 clipboard.js

我做错了什么?

您没有将 id 设置为 btn 的按钮,因此 getElementById 将为 return null。

您正在将 null 传递给剪贴板。