是什么阻止 Javascript 将值存储在剪贴板上?
What could be preventing Javascript from storing the value on the clipboard?
我在 ASP.Net 网站中使用了一些简单的 Javascript。
一个值被计算并存储在一个隐藏的文本框中,如下所示。
<asp:LinkButton ID="LinkButtonShare" runat="server" CssClass="btn btn-success" OnClientClick="copyToClipboard()"><i class="fa fa-share-square"></i> Share</asp:LinkButton>
<div class="hidden"><asp:TextBox ID="TextBoxCopyURL" runat="server" ClientIDMode="Static"></asp:TextBox></div>
然后它执行我的Javascript,如下所示。
function copyToClipboard() {
var copyText = document.getElementById("TextBoxCopyURL");
copyText.select();
document.execCommand("copy");
/* Alert with the copied text */
alert("Copied the text: " + copyText.value);
导致如下所示的警告,但该字符串从未复制到我在 Firefox 或 Chrome.
中的剪贴板
我似乎无法理解我在如此简单的事情上遗漏了什么...
您的代码略有不同,但基本相同。它按预期工作。 https://codepen.io/anon/pen/ZjWXoj
function copyToClipboard() {
var copyText = document.getElementById("textinput");
copyText.select();
document.execCommand("copy");
console.log(copyText.value); // logs copyText input value
}
document.querySelector('#btn').addEventListener('click', () => {
copyToClipboard();
})
注意在js中不能直接获取剪贴板的内容。也就是说,您无法以编程方式触发粘贴或访问剪贴板的内容。
按照本页的示例:
https://forums.asp.net/t/1106610.aspx?How+to+copy+the+text+of+a+textbox+to+clipboard+
你可以这样解决:
function copyToClipboard() {
var copyText = document.getElementById("TextBoxCopyURL");
copyTextValue = copyText.value;
window.clipboardData.setData('Text' , copyTextValue );
/* Alert with the copied text */
alert("Copied the text: " + copyTextValue );
}
我在 ASP.Net 网站中使用了一些简单的 Javascript。
一个值被计算并存储在一个隐藏的文本框中,如下所示。
<asp:LinkButton ID="LinkButtonShare" runat="server" CssClass="btn btn-success" OnClientClick="copyToClipboard()"><i class="fa fa-share-square"></i> Share</asp:LinkButton>
<div class="hidden"><asp:TextBox ID="TextBoxCopyURL" runat="server" ClientIDMode="Static"></asp:TextBox></div>
然后它执行我的Javascript,如下所示。
function copyToClipboard() {
var copyText = document.getElementById("TextBoxCopyURL");
copyText.select();
document.execCommand("copy");
/* Alert with the copied text */
alert("Copied the text: " + copyText.value);
导致如下所示的警告,但该字符串从未复制到我在 Firefox 或 Chrome.
中的剪贴板我似乎无法理解我在如此简单的事情上遗漏了什么...
您的代码略有不同,但基本相同。它按预期工作。 https://codepen.io/anon/pen/ZjWXoj
function copyToClipboard() {
var copyText = document.getElementById("textinput");
copyText.select();
document.execCommand("copy");
console.log(copyText.value); // logs copyText input value
}
document.querySelector('#btn').addEventListener('click', () => {
copyToClipboard();
})
注意在js中不能直接获取剪贴板的内容。也就是说,您无法以编程方式触发粘贴或访问剪贴板的内容。
按照本页的示例:
https://forums.asp.net/t/1106610.aspx?How+to+copy+the+text+of+a+textbox+to+clipboard+
你可以这样解决:
function copyToClipboard() {
var copyText = document.getElementById("TextBoxCopyURL");
copyTextValue = copyText.value;
window.clipboardData.setData('Text' , copyTextValue );
/* Alert with the copied text */
alert("Copied the text: " + copyTextValue );
}