📄 common.js
字号:
/*
----------- Common Utility Scripts ------------
author : satellite
date : 2005-9-15
all right reserved 2007 dvbbs.net
-----------------------------------------------
*/
var ua = window.navigator.userAgent;
var an = window.navigator.appName;
// Is it IE?
var bMSIE = (ua.indexOf("MSIE")>=1);
//$() 实现 document.getElementById() 简写
//
function $()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
/* 字符检测 */
function isInteger(str)
{
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str);
}
function Html2Txt(htmlText)
{
str = htmlText.replace(/\r\n/g, " ");
str = str.replace(/\r/g, " ");
str = str.replace(/\n/g, " ");
str = str.replace(/\t/g, "");
str = str.replace(/<BR>/gi,"\r\n");
str = str.replace(/<[^>]+?>/g,"");
str = str.replace(/ /g, " ");
str = str.replace(/>/g, ">");
str = str.replace(/</g, "<");
str = str.replace(/&/g, "&");
return str;
}
/* ----------- 以下几个仅用于论坛 ------------------------- */
//specify whether contents should be auto copied to clipboard (memory)
//Applies only to IE 4+
//0=no, 1=yes
var copytoclip=1;
function copyToClipboard(theField,isalert) {
var tempval=$(theField);
if (navigator.appVersion.match(/\bMSIE\b/)){
tempval.select();
if (copytoclip==1){
therange=tempval.createTextRange();
therange.execCommand("Copy");
if(isalert!=false)alert("复制成功。现在您可以粘贴(Ctrl+v)到Blog 或 BBS中了。");
}
return;
}else{
alert("您使用的浏览器不支持此复制功能,请使用Ctrl+C或鼠标右键。");
tempval.select();
}
}
//Board Jump
function boardJump(obj)
{
var selectedValue = obj.options[obj.selectedIndex].value;
if (selectedValue.indexOf(',') != -1 || selectedValue == -1)
{
obj.options[0].selected = true;
return;
}
location.href = 'board.aspx?boardid=' + selectedValue;
}
/*停止使用这个函数
//跳转标签效果
/*flag表示将要处于激活状态的标签
**url表示处于被激活状态标签下的frame将加载的url.
*/
function getList2(flag,url)
{
new3.f=flag;
//added by McJeremyXu,set new3.event=''
new3.event='';
new3.load();
document.getElementById('my').src = url +"&nocache="+Math.random();
}
/******/
function setCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
//Collapse Or Expand Tablebody
function collapse(img, objName)
{
var cateid = objName.replace("cate","");
var cateids= getCookie("closedcateids");
if(cateids == null)
cateids = "";
// alert(cateids);
//specially, invoke another function. (topic.aspx)
if (objName == 'loopedreplies')
{
collapseTables(img);
return;
}
var obj = document.getElementById(objName);
if (!obj){return;}
if (obj.style.display!='none'){
obj.style.display = 'none';
img.src = img.src.replace('open', 'close');
//write cate id to cookie
setCookie("closedcateids",cateids.replace("[" + cateid + "]", "") + "[" + cateid + "]");
}
else{
obj.style.display = 'block';
img.src = img.src.replace('close', 'open');
setCookie("closedcateids",cateids.replace("[" + cateid + "]", ""));
}
}
/* ----------- 三个实用函数 --------------------- */
//Submit Once
function submitonce(f)
{
if (document.all || document.getElementById)
{
for (i=0; i<f.elements.length; i++)
{
var ctl = f.elements[i];
var ctlType = ctl.type.toLowerCase();
if (ctlType == 'submit' || ctlType == 'button' || ctlType == 'reset')
{
ctl.disabled = true;
}
}
}
}
//Ctrl + Enter
function ctlent_backup1()
{
if (window.event)
{
if(event.ctrlKey && window.event.keyCode == 13)
{
var f = document.forms['editor_form'];
if (!f) f = document.forms['__aspnetForm'];
if (!f) f = document.forms['aspnetForm'];
f.send.click();
return false;
}
}
}
//Check All
function chkAll()
{
var f; //define & find the form object
var isFound = false;
for (var i=0; i<document.forms.length; i++)
{
f = document.forms[i];
if (f.checkall) //key item : named 'checkall'
{
isFound = true;
break;
}
}
if (!isFound) return;
var isAllChecked = f.checkall.checked;
for (var i=0; i<f.elements.length; i++)
{
if (f.elements[i].type.toLowerCase() == 'checkbox')
{
f.elements[i].checked = isAllChecked;
}
}
}
/* ---- !!!!!!!!!!!!!!!!!!注意!!!!!!!!!!!!!!!!! --------- */
/* ---- 以下函数将被Dvbbs.Web.dll产生的代码所引用 --------- */
var originUrl
//Pager
function setPage(s, i)
{
return s.replace('{p}', i.toString());
}
function pager(url, page, maxPage, total, per, countsIsVisible)
{
originUrl = url;
var first = "<font style='font-size:12px'>首页</font>";
var previous = "<font style='font-size:12px'>上一页</font>";
var next = "<font style='font-size:12px'>下一页</font>";
var last = "<font style='font-size:12px'>尾页</font>";
var s = "<div class='pager-block' style='width:100%;text-align:right'><div class='pager-links' style='float:left; text-align:left; font-family:courier new,sans-serif'>";
if (page == 1)
{
s += (first + " " + previous + " <b>");
}
else
{
if (first != "") s += ("<a href='" + setPage(url, 1) + "'>" + first + "</a> ");
s += ("<a href='" + setPage(url, (page-1)) + "'>" + previous + "</a> <b>");
}
var j = (page-5 < 1) ? 1 : page-5;
var k = (page+5 > maxPage) ? maxPage : page+5;
if (j > 1) s += " <a href='" + setPage(url, 1) + "'>1</a> ... ";
for (var i=j; i<k+1; i++)
{
if (page == i)
{
s += ("<span class='t2'>" + i + "</span> ");
continue;
}
s += ("<a href='" + setPage(url, i) + "'>" + i + "</a> ");
}
if (maxPage > k) s += " ... <a href='" + setPage(url, maxPage) + "'>" + maxPage + "</a> ";
if (page == maxPage)
{
s += ("</b>" + next + " " + last);
}
else
{
s += ("</b><a href='" + setPage(url, page+1) + "'>" + next + "</a> ");
if (last != "") s += ("<a href='" + setPage(url, maxPage) + "'>" + last + "</a>");
}
s += " 转到 <input type='text' name='gotopage' value='" + page + "' size='3' onkeydown='onpagekeydown();'/> <input type='button' value='Go' style='height:19px;' onclick='ongoto()' />";
s += ("</div>");
if (countsIsVisible)
{
s += ("<div class='pager-stat' style='float:lift;'>");
s += ("总记录:<span class='t2'>" + total + "</span> ");
s += ("每页:<span class='t2'>" + per + "</span> ");
s += ("总页数:<span class='t2'>" + maxPage + "</span></div>");
}
s += "</div>";
return s;
}
function onpagekeydown()
{
if (window.event)
{
if(window.event.keyCode == 13)
{
//ongoto();
//直接用ongoto()时,在线列表分页的文本框中输入页数后回车会在新窗口中打开
var page = document.getElementById("gotopage").value;
if (isNaN(page))
{
page = "1";
}
if(originUrl=='undefined'||originUrl==null||originUrl=='')originUrl = document.getElementById("originUrl").value;
if(arguments.length==1&&arguments[0]!='_self'&&arguments[0]!='_target'&&arguments[0]!='_parent'&&arguments[0]!='_top')
{
var w = eval(arguments[0]);
w.location.href = setPage(originUrl, page);
}else
{
location.href = setPage(originUrl, page);
}
event.returnValue = false;
}
}
}
function ongoto()
{
var page = document.getElementById("gotopage").value;
if (isNaN(page))
{
page = "1";
}
if(originUrl=='undefined'||originUrl==null||originUrl=='')originUrl = document.getElementById("originUrl").value;
if(arguments.length==1&&arguments[0]!='_self'&&arguments[0]!='_target'&&arguments[0]!='_parent'&&arguments[0]!='_top')
{
var w = eval(arguments[0]);
w.location.href = setPage(originUrl, page);
}else
{
location.href = setPage(originUrl, page);
}
}
//Byte Counter
function len(str)
{
var bytes = 0;
for(i=0; i<str.length; i++)
{
ascii = str.charCodeAt(i);
bytes += (ascii < 255 ? 1 : 2);
}
return bytes;
}
//Trim
function trim(str)
{
return str.replace(/(^[\s ]*)|([\s ]*$)/g, '');
}
String.prototype.trim = function()
{
return this.replace(/(^[\s ]*)|([\s ]*$)/g, '');
}
//Format
String.prototype.format = function()
{
var s = this.replace(/\r/g, '');
s = s.replace(/[\v\t ]*\n[\v\t ]*/g, '\n');
s = s.replace(/(\n+)/g, '$1 ');
s = s.replace(/[\n]{2,}/g, '\n\n');
s = s.replace(/\n/g, '\r\n');
s = ' ' + s;
s = s.replace(/( !)/g, '');
s = s.replace(/ (\[uploadimage)/gi, '$1');
return s;
}
//Filter
String.prototype.shitEncode = function()
{
return this.replace(/(妈的|妈b|妈比|fuck|shit|我日|法轮|产党|泽东)/gi, "**");
}
//HtmlEncode
String.prototype.htmlEncode = function()
{
var s = this.replace(/&/g, '&');
s = s.replace(/[ ]*\r/g, '');
s = s.replace(/ /g, ' ');
s = s.replace(/\t/g, ' ');
s = s.replace(/\"/, '"');
s = s.replace(/\'/, ''');
s = s.replace(/</g, '<');
s = s.replace(/>/g, '>');
s = s.replace(/\n/g, '<BR>');
return s.shitEncode();
}
//TextEncode
String.prototype.textEncode = function()
{
var s = this.replace(/&/g, '&');
s = s.replace(/</g, '<');
s = s.replace(/>/, '>');
return s.shitEncode();
}
//UbbCode
function UbbCode()
{
//Protected Html
this.protectHtml = function(str)
{
var s = str.replace(/<(\/?script)([^>]*)>/gi, '<$1$2>');
s = s.replace(/<(\/?applet)([^>]*)>/gi, '<$1$2>');
s = s.replace(/(javascript|vbscript|script)[\s]*:/gi, 'none:');
s = s.replace(/<([%\?]{1})/gi, '<$1');
s = s.replace(/([%\?]{1})>/gi, '$1>');
s = s.replace(/<!\-\-[\s]*#[\s]*include/gi, '<!-- include');
return s.shitEncode();
}
//Emotions
this.showEmotion = function(str)
{
return str.replace(/\{\/em([\d]+)\}/gi, "<img src='<~>emotion/$1.gif' alt='emote' /> ");
}
//Seek URL
this.findUrl = function(str)
{
var s = str.replace(/([^>=\]])((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9%\-_@]+\.[A-Za-z0-9%\-_@]+[A-Za-z0-9\.\/=\?%\-&_~`@:\+!;]*)/gi, "$1<a href='<~>$2' target='_blank'>$2</a>");
s = s.replace(/(^|<br \/>)((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9%\-_@]+\.[A-Za-z0-9%\-_@]+[A-Za-z0-9\.\/=\?%\-&_~`@:\+!;]*)/gi, "$1<a href='<~>$2' target='_blank'>$2</a>");
s = s.replace(/(^|<br \/>)(www\.[A-Za-z0-9%\-_@]+[A-Za-z0-9\.\/=\?%\-&_~`@:\+!;]+)/gi, "$1<a href='http://$2' target='_blank'>$2</a>");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -