Javascript 如何使用单击按钮在剪贴板中复制示例代码
编辑开始***** 这不是重复,我的问题与你提到的有点不同。这是我的更新代码,我看到我在执行console.log时得到了innerHTML,但它没有复制,如果您可以在jsFiddler中使用它,这可能吗 html代码:Javascript 如何使用单击按钮在剪贴板中复制示例代码,javascript,html,Javascript,Html,编辑开始***** 这不是重复,我的问题与你提到的有点不同。这是我的更新代码,我看到我在执行console.log时得到了innerHTML,但它没有复制,如果您可以在jsFiddler中使用它,这可能吗 html代码: <div id="mydivid"> $(document).on('click', '.btn', function() { $(this).toggleClass('active'); }); </div> 编辑结束***** 我正在
<div id="mydivid">
$(document).on('click', '.btn', function() { $(this).toggleClass('active'); });
</div>
编辑结束*****
我正在尝试使用JavaScript从代码标记复制代码。它可以工作,但它会将文本复制到一长行文本中。我希望它以准确的格式复制,例如,请参见以下网站:
我的问题是,如何实现与上述网站相同的copy
code逻辑
这是我的密码:
copy: function(component,event,text) {
// Create an hidden input
var hiddenInput = document.createElement("input");
// passed text into the input
hiddenInput.setAttribute("value", text);
// Append the hiddenInput input to the body
document.body.appendChild(hiddenInput);
// select the content
hiddenInput.select();
// Execute the copy command
document.execCommand("copy");
// Remove the input from the body after copy text
document.body.removeChild(hiddenInput);
}
问题是,
输入
中不能有任何换行符,因此当您将字符串分配给其值
时,该字符串包含换行符,它们就会消失:
input.value='foo\nbar';
console.log(input.value.includes('\n'))代码>
问题在于,输入
中不能包含任何换行符,因此当您将字符串分配给其.value
,并且该字符串包含换行符时,这些换行符就会消失:
input.value='foo\nbar';
console.log(input.value.includes('\n'))代码>
我替换为文本区域
,但没有复制到剪贴板这里工作正常-请参阅回答中的live snippet我看到了它复制的代码,但为什么我仍然看到
标记?请尝试此代码,而不是将foo bar
示例代码复制到剪贴板var str=“Hello,World!” log(“你好,这里!”) $(document).on('click','.btn',function(){$(this.toggleClass('active');})
是输入字符串的一部分,因此它也将是复制文本的一部分。如果不希望它成为复制文本的一部分,请先将其修剪掉?或者,如果要删除所有HTML标记,请使用DOMParser
,将元素的innerHTML
设置为该文本,然后检索其textContent
或innerText
?我被textarea
替换,但没有复制到剪贴板这里工作正常-请参阅回答中的live snippet我看到了它复制的代码,但为什么我仍然看到
标记?请尝试此代码,而不是将foo bar
示例代码复制到剪贴板var str=“Hello,World!” log(“你好,这里!”) $(document).on('click','.btn',function(){$(this.toggleClass('active');})
是输入字符串的一部分,因此它也将是复制文本的一部分。如果不希望它成为复制文本的一部分,请先将其修剪掉?或者,如果要删除所有HTML标记,请使用DOMParser
,将元素的innerHTML
设置为该文本,然后检索其textContent
或innerText
?问题不接受答案,请耐心等待。使用textarea
元素作为中间文本复制元素插入输入
,以保留重复和此处所述的行喙。使用问题中提到的
元素的textContent
属性,而不是innerHTML
获取要复制的文本。将code
标记嵌套在pre
标记中也可能有助于它在HTML中的布局。问题不在于接受答案,所以请耐心等待。使用textarea
元素作为中间文本复制元素插入输入
,以保留重复和此处所述的行喙。使用问题中提到的
元素的textContent
属性,而不是innerHTML
获取要复制的文本。将code
标记嵌套在pre
标记中也有助于它在HTML中的布局。
copy: function(component,event,text) {
// Create an hidden input
var hiddenInput = document.createElement("input");
// passed text into the input
hiddenInput.setAttribute("value", text);
// Append the hiddenInput input to the body
document.body.appendChild(hiddenInput);
// select the content
hiddenInput.select();
// Execute the copy command
document.execCommand("copy");
// Remove the input from the body after copy text
document.body.removeChild(hiddenInput);
}