我正在尝试复制我的 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>
最佳答案
而不是使用这个:
<asp:Button ID="btnCopy" runat="server" Text="Copy link"
OnClientClick="copyToClipboard()" />
因为当使用在服务器上运行的 ASP.NET Controller 时,它会发回服务器。
使用按钮 html 标签。
<button id="btnCopy" click="copyToClipboard()">Copy link</button>
或者你可以这样做:
<asp:Button ID="btnCopy" runat="server" Text="Copy link"
OnClientClick="copyToClipboard(); return false;" />
关于javascript - 将元素文本复制到剪贴板 aspx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445981/