代码改变世界

给.Text加个“复制本贴地址,传给QQ/MSN上的好友”的按钮

  无常  阅读(1798)  评论(2编辑  收藏  举报

猫扑看贴时有个“复制本贴地址,传给QQ/MSN上的好友”的按钮
点击后就可以把文章的地址复制到剪贴板中
十分方便

在.Text中加此功能也很简单
打开DottextWeb/UI/Controls/ViewPosts.cs

 1         protected override void OnLoad(EventArgs e)
 2         {
 3             base.OnLoad (e);
 4             
 5             //Get the entry
 6             Entry entry = Cacher.GetEntryFromRequest(Context,CacheTime.Medium);    
 7                 
 8             
 9             //if found
10             if(entry != null)
11             {
12                ...
49                 //Set Pingback/Trackback 
50                 PingBack.Text = TrackHelpers.PingPackTag;
51                 TrackBack.Text = TrackHelpers.TrackBackTag(entry);
52 
53                 System.Text.StringBuilder sb = new System.Text.StringBuilder();
54                 sb.Append("<table cellpadding=0 cellspacing=0 border=0 style=\"border:1px #D3D3D3 solid;width:415px;height:30px\">");
55                 sb.Append("<tr><td align=\"center\" >\n");
56                 sb.Append("<input onclick='copyToClipBoard()' type=\"button\" value=\" 复制本贴地址,传给QQ/MSN上的好友 \"></td></tr></table>\n");
57                 sb.Append("<script language=\"javascript\">\n");
58                 sb.Append("function copyToClipBoard(){\n");
59                 sb.Append("var clipBoardContent=''\n");
60                 sb.Append("clipBoardContent+='").Append(entry.Title.Replace(@"'",@"\'")).Append("'\n");
61                 sb.Append(@"clipBoardContent+='\n';");
62                 sb.Append("clipBoardContent+='").Append(entry.TitleUrl).Append("'\n");
63                 sb.Append("window.clipboardData.setData('Text',clipBoardContent)\n");
64                 sb.Append("alert('复制成功,请粘贴到你的QQ/MSN上推荐给你的好友')}\n");                                                           
65                 sb.Append("</script>");
66                                                                                                                                                                       
67                 Controls.Add( new LiteralControl(sb.ToString() ));

68 
69             }
70             else 
71             {
72                 //No post? Deleted? Help :)
73                 this.Controls.Clear();
74                 this.Controls.Add(new LiteralControl("<p><strong>文章不存在。</strong></p>"));
75             }
76         }

加上蓝底这段代码就行了
刚才也给二频博客加了这个功能

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示