Thursday, February 9, 2012 4:48:47 AM
CSS, JavaScript, HTML
写了几个函数,结果没用上。
感觉这些代码还是有些用处,所以贴在这儿,以备查用。
var headerHelper = {
//*******************************************************
// 动态加载js文件
//*******************************************************
loadJsFile: function(sUrl, doc) {
doc = doc || document;
var fileref = doc.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", sUrl);
doc.getElementsByTagName("head")[0].appendChild(fileref);
},
//*******************************************************
// 将header中的js文件删除
//*******************************************************
removeJsFile: function(sUrl, doc) {
doc = doc || document;
var scriptTags = doc.getElementsByTagName('script')
for (var i=scriptTags.length; i>=0; i--){
if (scriptTags[i] && scriptTags[i].getAttribute('src') != null
&& scriptTags[i].getAttribute(targetattr).indexOf(sUrl)!=-1) {
scriptTags[i].parentNode.removeChild(scriptTags[i])
}
}
},
//*******************************************************
// 动态加载css文件
//*******************************************************
loadCssFile: function(sUrl, doc) {
doc = doc || document;
var fileref = doc.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", sUrl);
doc.getElementsByTagName("head")[0].appendChild(fileref);
},
//*******************************************************
// 将header中的css文件删除
//*******************************************************
removeCssFile: function(sUrl, doc) {
doc = doc || document;
var linkTags = doc.getElementsByTagName('link')
for (var i=linkTags.length; i>=0; i--){
if (linkTags[i] && linkTags[i].getAttribute('href') != null
&& linkTags[i].getAttribute(targetattr).indexOf(sUrl)!=-1) {
linkTags[i].parentNode.removeChild(linkTags[i])
}
}
}
}
Thursday, February 9, 2012 4:39:34 AM
Cookie, PHP
刚开始以为很简单,只要判断 $_COOKIE 是否为空就行了,结果不行。
如果客户端起初设置 Cookie 有效,中途删除 Cookie 后再提交请求,以上方法就会导致误判。
正确的做法是分两步,$_COOKIE 为空的情况下,在URL上加一个参数,再次提交提交请求(用redirect实现),
如果 $_COOKIE 还是为空,那就可以判定客户端 Cookie 无效。
示例代码如下:
<?php
setcookie('test', 1, time()+3600);
if(empty($_COOKIE)){
if(isset($_GET['chk_cookie'])) {
echo "客户端 Cookie 无效";
} else {
$testUri = $_SERVER['REQUEST_URI'];
$testUri .= ((strpos($testUri, '?') === false) ? '?' : '&') .'chk_cookie=1';
header('Location:'.$testUri);
}
} else {
echo "客户端 Cookie 有效";
}
Tuesday, February 7, 2012 1:51:57 AM
Command, Linux, CentOS
第一步
cp /usr/share/zoneinfo/{时区名} /etc/localtime第二步
vi /etc/sysconfig/clockZONE="{时区名}"
UTC=true
ARC=false
第三步
yum install ntp
ntpdate us.pool.ntp.org例1)日本东京
cp /usr/share/zoneinfo/Japan /etc/localtimevi /etc/sysconfig/clockZONE="Asia/Tokyo"
例2)中国上海
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimevi /etc/sysconfig/clockZONE="Asia/Shanghai"
Monday, January 23, 2012 3:07:05 AM
HTML5
根据以前的经验,br 标签写法如下
HTML: <br>
XHTML: <br />
现已经入 HTML5 时代,突然想知道什么是标准写法。
还好 StackOverflow 上有
答案
根据被采纳的回答,HTML5 只要写
<br>
就行了,没必要加斜杠。
当然,加上斜杠也不碍事,不过没必要。
似乎,简洁至上是HTML5的原则之一。
Tuesday, December 20, 2011 7:50:42 AM
Linux, Command, Japanese
基本命令格式:$ nkf 参数 文件名 [> 输出文件名]通过管道使用(例):$ cat 文件名 | nkf 参数 [> 输出文件名]常用参数:-j : 转换为 JIS 编码(ISO-2022-JP),默认
-e : 转换为 EUC 编码
-s : 转换为 Shift-JIS 编码
-w : 转换为 UTF-8 编码(无BOM)
-Lu : 转换为 unix 换行格式(LF)
-Lw : 转换为 windows 换行格式(CRLF)
-Lm : 转换为 macintosh 换行格式(CR)
-g(--guess) : 自动判断编码并显示
--version : 显示版本
--help : 显示帮助
Monday, December 12, 2011 1:53:02 AM
MySQL, backup
以下脚本用于本机 mysql 数据库的备份。每个数据库保存一周的7个备份。
#!/bin/bash
# 备份路径
BACKDIR=/var/backup/mysql
mkdir -p $BACKDIR
# MySQL的root用户密码
ROOTPASS=password
# 取得数据库名列表
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
# 取得星期几
WEEKDAY=`date +'%w'`
# 对各数据库进行备份
for dbname in $DBLIST
do
[ $dbname = "mysql" ] && continue
mysqldump -u root -p$ROOTPASS $dbname | gzip > $BACKDIR/$dbname.sql.$WEEKDAY.gz
done
Thursday, December 8, 2011 2:59:54 AM
grep, Linux, Command
单个条件的 grep 检索命令很简单:
grep pattern1 textfile
以上命令也是最常用的形式。
复合条件的检索就不那么简单,因此有必要整理一下。
● AND条件
grep pattern1 textfile | grep pattern2
● OR条件
grep "pattern1\|pattern2" textfile
grep -e pattern1 -e pattern2 textfile
● 除外(AND)
grep -v "pattern1\|pattern2" textfile
● 常用参数
-i 不区分大小写
-l 只列出符合条件的文件名
-n 显示行号
-v 列出不符合条件的行
--color 给符合条件的关键字加颜色
-o 只显示符合条件的关键字
-r 在指定目录下递归检索
Tuesday, December 6, 2011 4:41:36 AM
jQuery, JavaScript
1. 基本模式
$(document).ready(function(){
// 自己的代码
});
2. 常用模式
$(function(){
// 自己的代码
});
3. 和其他框架共用模式
jQuery(document).ready(function($){
// 自己的代码
});
4. 2和3的组合模式
jQuery(function($){
// 自己的代码
});
参考:
http://5509.me/log/jquery-execution-pattern
Wednesday, November 9, 2011 5:12:34 AM
jQuery, JavaScript
用 jQuery 做一个简单的弹出对话框
用 jQuery 做了一个简单的弹出对话框,可用于智能手机。
// 让元素居中的函数
jQuery.fn.center = function () {
$win = $(window);
this.css('position','absolute');
this.css('top', (($win.height() - this.outerHeight()) / 2) + $win.scrollTop() + 'px');
this.css('left', (($win.width() - this.outerWidth()) / 2) + $win.scrollLeft() + 'px');
return this;
}
// 弹出对话框函数
jQuery.msgBox = function(sMsg, sTitle, sButton) {
sMsg = sMsg || '';
sTitle = sTitle || '消息';
sButton = sButton || '关闭';
$alertBox = $('<div>').css({
'position': 'absolute',
'top': '0',
'left': '0',
'width': '300px',
'height': '150px',
'border-radius': '5px',
'padding': '2px',
'background': '#000',
'color': '#FFF',
'opacity': '0.8',
'z-index': '999',
'text-align': 'center'
}).append('<div style="background:#333;border-radius:3px;padding:2px;margin:4px;font-size:90%;">' + sTitle + '</div>')
.append('<div style="height:70px;margin:8px;2px;text-align:left;">' + sMsg + '</div>')
.append($('<button style="padding:3px;">' + sButton + '</button>').click(function(e) {
$alertBox.remove();
})
).prependTo(document.body).center().show();
};
//测试(示例)
$('#test').click(function(){
$.msgBox('Hello world!');
});
Monday, November 7, 2011 2:51:30 AM
jQuery, Android, JavaScript
Android 的浏览器(可能仅限于某些版本),如果URL本身带有 #top 这样的字符串,页面内的跳转(anchor)将不起作用。
为此,用 javascript 解决如下:
$("a[href^=#]").click(function(e) {
//if(window.location.href.indexOf('#') == -1) return true; // 仅对应 URL 带 # 的情况
e.preventDefault();
var sAnchor = $(this).attr('href').replace('#', '');
var $target = $('a[name=' + sAnchor + ']').next();
var nTop = ($target.length > 0) ? $target.offset().top : 0;
$(window).scrollTop(nTop);
// 若需动画效果
//$(document.body).animate({ scrollTop: nTop }, 'slow');
return false;
});
注:以上代码基于 jQuery。