Javascript 代码片断
跳转到导航
跳转到搜索
字符串处理
加密/解密
rot13
String.prototype.rot13 = function(){
return this.replace(/[a-zA-Z]/g, function(c){
return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
});
};
cookie相关
function setCookie(c_name,value,expiredays){
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
function getCookie(c_name){
if(document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + "=")
if(c_start!=-1){
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
DOM
function getStyle(dom){
var style;
var returns = '';
var camelize = function(a, b){
return b.toUpperCase();
};
style = window.getComputedStyle(dom, null);
for(var i = 0, l = style.length; i < l; i++){
var prop = style[i];
var camel = prop.replace(/\-([a-z])/g, camelize);
var val = style.getPropertyValue(prop);
returns += camel + ': ' + val + '\n';
}
return returns;
}
XML与字符串的互转
String.prototype.toxml = function(){
if(navigator.userAgent.indexOf('MSIE')>-1){
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(this);
}else{
xml = (new DOMParser()).parseFromString(this, 'text/xml');
}
return xml;
};
XMLDocument.prototype.toString = function(){
return (new XMLSerializer()).serializeToString(this);
};
高亮表格的行和列(>= jQuery 1.4.2):
$("table").delegate('td','mouseover mouseleave', function(e) {
if (e.type == 'mouseover') {
$(this).parent().addClass("hover");
$("colgroup").eq($(this).index()).addClass("hover");
} else {
$(this).parent().removeClass("hover");
$("colgroup").eq($(this).index()).removeClass("hover");
}
});
来源:CSS-Tricks: Table Row and Column Highlighting
表单
文件
读取文件
文件的读取使用 FileReader 对象。读取是异步进行的。目前只有火狐(3.6+)支持。Chrome存在相应的对象和文件( readAsBinaryString ),但实际上不能读取到文件。
var file = $('#input-file')[0].files[0];
var reader = new FileReader();
reader.onload = function(load){
alert(load.target.result);
}
reader.onerror = function(e){
$('#error').text('文件读取失败。').show();
}
reader.readAsBinaryString(file);
浏览器功能
添加书签
var addFav=function(url,title){
if(window.sidebar&&"object"==typeof (window.sidebar)&&"function"==typeof (window.sidebar.addPanel)){
window.sidebar.addPanel(title,url,"")
}else{
if(document.all&&"object"==typeof (window.external)){
window.external.addFavorite(url,title)
}
}
};
事件
模拟事件
function simulateClick() {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cb = document.getElementById("checkbox");
var canceled = !cb.dispatchEvent(evt);
if(canceled) {
// A handler called preventDefault
alert("canceled");
} else {
// None of the handlers called preventDefault
alert("not canceled");
}
}