提供的clipboard()
函数接受一个DOM元素。您将不得不修改该功能以适应您的要求。
function clipboard(el, txt) {
// deselect all
var selected = document.getElementsByClassName("selected");
for (var i = 0; i < selected.length; i++) {
selected[i].className = '';
};
el.className = 'selected';
clip.setValue(txt);
}
在这里,您将不得不显式传递要复制的文本。在mscConfirm
的okCallback中,this
没有引用任何元素。
所以根据我的,你的函数调用应该是这样的:
<% if @exists == true %>
mscConfirm("Hold on", 'The file has been shared already, <%= @display %>', function(){
clipboard(document.getElementById("DOMnodeID"), @display);
});
<% end %>
或者你可以完全消除れ,只是通过文本复制:
function clipboard(txt) {
// deselect all
var selected = document.getElementsByClassName("selected");
for (var i = 0; i < selected.length; i++) {
selected[i].className = '';
};
clip.setValue(txt);
}
然后你的函数呼叫应该看起来像这样:
<% if @exists == true %>
mscConfirm("Hold on", 'The file has been shared already, <%= @display %>', function(){
clipboard(@display);
});
<% end %>
它在我的结尾正确显示。你想在哪里粘贴复制的文本? – TarunJadhwani
在文本框中。用输出屏幕更新我的问题以供参考。 –