因为经常弄些代码,觉得弄上这个还是比较方便的.
PS:
FireFox 浏览器出于安全考虑,默认情况下禁止JS 对剪贴板的内容进行更改,所以此功能在FireFox下无效,需要客户端浏览者手动复制.
作者:戒聊
演示:
http://www.leoyung.com/article/7929.htm
转载请说明来源.
1.打开UBBCODE.ASP,找到
复制内容到剪贴板
代码:
re.Pattern = "\[code\](.*?)\[\/code\]"
strContent = re.Replace(strContent, "<div class=""UBBPanel""><div class=""UBBTitle""><img src=""images/code.gif"" style=""margin:0px 2px -3px 0px"" alt=""程序代码""/> 程序代码</div><div class=""UBBContent"">$1</div></div>")修改为:
复制内容到剪贴板
代码:
'-----------代码标签----------------
re.Pattern = "\[code\](.*?)\[\/code\]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1 = strMatch.SubMatches(0)
Randomize
rndID = "code"&Int(100000 * Rnd)
strContent = Replace(strContent, strMatch.Value, "<div class=""UBBPanel""><div class=""UBBTitle""><EM onClick=""copycode(" + rndID + ");"" style=""float:right;cursor: pointer;font-weight: normal; font-style: normal"">复制内容到剪贴板</EM><img src=""images/code.gif"" style=""margin:0px 2px -3px 0px;border:0"" alt=""程序代码""/>程序代码</div><div class=""UBBContent"" id=" + rndID + ">"&tmpStr1&"</div></div>")
Next
Set strMatchs = Nothing2.打开common.js,在最后插入如下代码:
复制内容到剪贴板
代码:
var lang = new Array();
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
function copycode(obj) {
if(is_ie && obj.style.display != 'none') {
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}
}[
本帖最后由 戒聊 于 2008-8-25 19:14 编辑 ]