在 prismjs 中更新剪贴板的内容
update the content of clipboard in prismjs
我有代码片段,用户可以将其复制到 his/her 站点。我为此使用 prismjs to show html code. also it has copy button, so user can copy the code in clipboard, it uses clipboardjs。用户可以在不同的选项之间进行选择(这是像 <select><option>..
这样的列表),这将更新代码片段并且还应该更新剪贴板按钮的内容(这里是问题)。
这里是html
<pre class="language-html">
<code id="code-example">
<!-- <div class="widget widget-BTC" data-fiat="EUR"></div> -->
</code>
</pre>
用户选择不同的选项后,<code id="code-example">
的内容将被更新(更新class名称和data-fiat
属性)
这是更新的 js 代码:
let block = document.getElementById('code-example');
block.innerHTML = '<!-- <div class="widget ...';
Prism.highlightElement(block);
问题是,当我从 select 列表中选择其他选项时,它会更新 html 代码片段,但如果我单击复制按钮,它会复制旧值,而不是更新值。我尝试了不同的东西,比如 但仍然是同样的问题。
需要创建另一个对象来更新值。这是解决方案:
new Clipboard('.yourButton', {
text: function(trigger) {
return '<div>some text</div>';
}
});
我有代码片段,用户可以将其复制到 his/her 站点。我为此使用 prismjs to show html code. also it has copy button, so user can copy the code in clipboard, it uses clipboardjs。用户可以在不同的选项之间进行选择(这是像 <select><option>..
这样的列表),这将更新代码片段并且还应该更新剪贴板按钮的内容(这里是问题)。
这里是html
<pre class="language-html">
<code id="code-example">
<!-- <div class="widget widget-BTC" data-fiat="EUR"></div> -->
</code>
</pre>
用户选择不同的选项后,<code id="code-example">
的内容将被更新(更新class名称和data-fiat
属性)
这是更新的 js 代码:
let block = document.getElementById('code-example');
block.innerHTML = '<!-- <div class="widget ...';
Prism.highlightElement(block);
问题是,当我从 select 列表中选择其他选项时,它会更新 html 代码片段,但如果我单击复制按钮,它会复制旧值,而不是更新值。我尝试了不同的东西,比如
需要创建另一个对象来更新值。这是解决方案:
new Clipboard('.yourButton', {
text: function(trigger) {
return '<div>some text</div>';
}
});