ajax 复制到“剪贴板”
有时候可能会做一些“复制”按钮的功能,当用户点击“复制”按钮时,就会将要复制的内容复制出来,以下代码即实现“复制”按钮的功能。该功能需要用到AJAX的PageMethods来调用页面后台代码来实现。
调用PageMethods,需要引用
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
// GetCopyData是页面后台(.aspx.cs)方法,输入参数为txt,copyToClipBoard是成功调用的JS方法,OnError是出错调用的方法
function ajax(txt) {
PageMethods.GetCopyData(txt, copyToClipBoard, OnError);
return true;
}
function copyToClipBoard(arg) {
if (arg == "") {
//alert("没有数据可用于复制");
}
else {
//复制
window.clipboardData.setData("Text", arg);
}
}
function OnError(arg) {
alert(arg.get_message());
}
//最外层调用方法 copy
function copy(txt) {
ajax(txt)
return false;
}
注:页面上还需要加下面这句,将EnablePageMethods="true"
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
//页面复制按钮
<input type="text" id="txtContent" />
<input type="button" onclick='copy(txtContent.value)' value="复制" />
页面后台代码:
[WebMethod]
public static string GetCopyData(string txt)
{
return txt;
}
后记:在启动调试时,弹出了错误提示对话框,大致内容为:无法启动程序http://localhost:8289/default.aspx,找不到元素。在网上搜了一下,解决方法:将360的防火墙关闭。果然有效!