我试图在我的aspx网站上复制一个元素的文本但无法使其工作。
我想点击一个按钮,让它将我的lblFileLink文本复制到剪贴板
注意:此页面使用的是母版页
这是我的代码:
<asp:Label ID="lblFileLink" runat="server"></asp:Label>
<asp:Button ID="btnCopy" runat="server" Text="Copy link" OnClientClick="copyToClipboard()" />
<script>
function copyToClipboard() {
var element = document.getElementById("lblFileLink")
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
return false
}
</script>
我希望它在回发之前做到这一点,所以使用javascrip / jquery
编辑:我注意到网站上的ID不同,所以现在我的代码是:
<asp:Label ID="lblFileLink" runat="server"></asp:Label>
<asp:Button ID="btnCopy" runat="server" Text="Copy link" OnClientClick="copyToClipboard('#ContentPlaceHolder1_lblFileLink')" />
<script>
function copyToClipboard(element) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
}
</script>
答案 0 :(得分:1)
而不是使用它:
<asp:Button ID="btnCopy" runat="server" Text="Copy link"
OnClientClick="copyToClipboard()" />
因为当使用asp.net控制器在服务器上运行时它会回发到服务器。
使用按钮html标记。
<button id="btnCopy" click="copyToClipboard()">Copy link</button>
或者你可以这样做:
<asp:Button ID="btnCopy" runat="server" Text="Copy link"
OnClientClick="copyToClipboard(); return false;" />