Skip to content

Instantly share code, notes, and snippets.

@wgkoro
Created October 25, 2012 01:50
Show Gist options
  • Save wgkoro/3950033 to your computer and use it in GitHub Desktop.
Save wgkoro/3950033 to your computer and use it in GitHub Desktop.
util of javascript
// Cookieに書き込む
function writeCookie(name, val, second){
var term = second * 1000;
var now = new Date();
var limit = new Date();
limit.setTime(limit.getTime() + term);
document.cookie = name + "=" + escape(val) + "; path=/; expires=" + limit.toUTCString();
}
function insertAfter(target, newElem){
var parent = target.parentNode;
if(parent.lastChild == target){
parent.appendChild(newElem);
}
else{
parent.insertBefore(newElem, target.nextSibling);
}
}
// 指定したCookieの値を返す
function readCookie(name){
var str = document.cookie;
if(str){
var hash = Array();
var c_array = str.split('; ');
var c_cnt = c_array.length;
for(i=0;i<c_cnt;i++){
eq_array = c_array[i].split('=');
if(name == eq_array[0]){
if(eq_array[1] == ""){
return false;
}else{
return unescape(eq_array[1]);
}
}
}
}
return false;
}
function deleteCookie(key){
var dt = new Date();
var str = key + "=; path=/; expires=" + dt.toGMTString();
document.cookie = str;
}
// ハッシュカウント
function hCount(hash){
var cnt = 0;
for(a in hash){
cnt++;
}
return cnt;
}
// サニタイズ
function h(string) {
return string.replace(/[&<>"']/g, function(match) {
return {
'&' : '&amp;',
'<' : '&lt;',
'>' : '&gt;',
'"' : '&quot;',
"'" : '&#39;'
}[match];
});
}
// GETを取得
function getQuery(){
var qArray = new Array();
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
qArray[key] = val;
}
}
return qArray;
}
function setClass(obj, name){
if(window.ActiveXObject){
if (window.XDomainRequest) {
obj.setAttribute('class', name);
} else {
obj.setAttribute('className', name);
}
}else{
obj.setAttribute('class', name);
}
return obj;
};
// Class名を取る
function getClass(obj, className){
var name;
try{
// IE
if(window.ActiveXObject){
if(window.XDomainRequest){
name = obj.getAttribute('class');
}
else{
name = obj.getAttribute('className');
}
}
// Except IE
else{
name = obj.getAttribute('class');
}
return name;
}
catch(e){
return false;
}
}
// Pathの連結 joinPath(http://abc.com/abc/aaa.html, ../abc.html)という感じで。
function joinPath(base,path){
if(base.substr(base.length-1) != '/'){
base = base.split('/');
base.length--;
base = base.join('/');
}else{
base = base.substr(0,base.length-1);
}
base = base.split('\\');
while(0 == path.indexOf('../')){
base.length--;
path = path.substr(3);
}
base = base.join('/');
base = base + '/' + path;
return base;
}
// ランダム文字列生成
var randStr = function(n, b) {
b = b || '';
var a = 'abcdefghijklmnopqrstuvwxyz'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ '0123456789'
+ b;
a = a.split('');
var s = '';
for (var i = 0; i < n; i++) {
s += a[Math.floor(Math.random() * a.length)];
}
return s;
};
// ブラウザを判別する
// return 8:IE i:IE6,7 o:Opera 1:Firefox, Chrome, Safari 0:Unknown
function whichBrowser(){
// IE
if(window.ActiveXObject){
if(window.XDomainRequest){
// IE8
browser = '8';
}else{
browser = 'i';
}
}
// Opera
else if(window.opera){
browser = 'o';
}
// Firefox, Chrome, Safari
else if(window.XMLHttpRequest){
browser = '1';
}
// Unknown
else{
browser = '0';
}
return browser;
}
// 時刻フォーマットで時間取得
var getTimeformat = function(date_str){
if (date_str == 0){
var date = new Date();
}
else{
var date = new Date(date_str);
}
// ミリ秒から時間変換
/*
var mil = 1318557375773; // ミリ秒
var date = new Date();
date.setTime(mil);
*/
var d = {};
// 日付の取得
var year = date.getYear();
var month = date.getMonth() + 1;
var day = date.getDate();
// 西暦の処理とゼロパディング
year = (year < 2000) ? year+1900 : year;
month = ('0' +month.toString()).slice(-2);
day = ('0' +day.toString()).slice(-2);
// 時間の取得
var time = new Date();
var hour = time.getHours();
var min = time.getMinutes();
var sec = time.getSeconds();
// ゼロパディング
if (hour < 10) { hour = "0" + hour.toString(); }
if (min < 10) { min = "0" + min.toString(); }
if (sec < 10) { sec = "0" + sec.toString(); }
d.year = year.toString();
d.month = month.toString();
d.day = day.toString();
d.hour = hour.toString();
d.minute = min.toString();
d.second = sec.toString();
d.unix = date.getTime().toString();
return d;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment