Label1(asp.net控件)位于我网页的Panel1内,我有一个名为bt的按钮。将Text1从Label1复制到剪贴板的Javascript是什么?
@artlung,我把下面的代码放在我的表单之外但在正文中。我放在我的表单的Panel1中的最后一行代码。此代码有任何问题,因为单击“复制到剪贴板”按钮时没有任何反应。
<script language="JavaScript">
var clip = new ZeroClipboard.Client();
clip.addEventListener( 'mouseDown', function(client) {
// set text to copy here
clip.setText( document.getElementById('form1.Label1').value );
// alert("mouse down");
} );
clip.glue( 'd_clip_button' );
</script>
下一行代码位于脚本标记之上,但在我的表单中的Panel1中
<div id="d_clip_button">Copy To Clipboard</div>
答案 0 :(得分:2)
我用javascript实现了这一点。我发现javascript正在将标签从Label1重命名为MainContent_Label1。然后我也通过调试看到我想从变量中获取的是innerText属性。解决了问题!
我还对空字符串进行了函数测试,然后在用户成功复制到剪贴板或标签为空且没有任何要复制的情况下向用户返回确认警报。这都是客户端。
<asp:Label ID="Label1" runat="server" Text="Copy This!!!"></asp:Label>
<script type="text/javascript">
function ClipBoardTest() {
var txt = document.getElementById('MainContent_Label1');
window.clipboardData.setData("Text", txt.innerText);
if(!txt){
alert("Nothing to Copy");
}
else {
alert("Copy to ClipBoard Successful!");
}
}
</script>
<input type="button" id='bt' onclick="ClipBoardTest();" value="Copy" />
答案 1 :(得分:1)
使用zeroclipboard库。
答案 2 :(得分:0)
还有一种无需使用任何外部库即可从标签复制文本的方法。
copyStrFunction = (copyStr) => {
const el = document.createElement('textarea'); // Create a <textarea> element
el.value = copyStr; // Set its value to the string that you want copied
el.setAttribute('readonly', ''); // Make it readonly to be tamper-proof
el.style.position = 'absolute';
el.style.left = '-9999px'; // Move outside the screen to make it invisible
document.body.appendChild(el); // Append the <textarea> element to the HTML document
el.select(); // Select the <textarea> content
document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events)
document.body.removeChild(el); // Remove the <textarea> element
}
在任何按钮和字符串的onclick上调用copyStrFunction()。 您还可以修改上述功能,以通过ID查找标签,然后从中复制文本。