Skip to content

Instantly share code, notes, and snippets.

@think49
think49 / http.js
Created October 10, 2010 18:25
http.js : XMLHttpRequest を利用してHTTPリクエストする
var XMLHttpRequest = (typeof XMLHttpRequest === 'function' || typeof XMLHttpRequest === 'object') ? XMLHttpRequest : (function () {
var i, l;
for (i = 0, l = arguments.length; i < l; i++) {
try {
arguments[i]();
return arguments[i];
}
catch (error) {}
}
@think49
think49 / ECMAScript5.js
Created October 17, 2010 07:58
ECMAScript5.js : ES5 準拠のメソッドを定義するJavaScriptライブラリ
/**
* ECMAScript5.js (ECMA-262 Edition 5)
*
* @version 1.0
* @author think49
*/
// 15.4.3.2 Array.isArray ( arg )
//
// 1. If Type(arg) is not Object, return false.
@think49
think49 / matchesCssRule.js
Created October 17, 2010 08:29
matchesCssRule.js : 対象の要素が cssRules で定義済みのセレクタにマッチするとき、true を返します。
// matchesCssRule.js
// Array.forEach(contextObject, callbackfn [, thisArg])
if (typeof Array.forEach !== 'function') {
Array.forEach = (function (forEach) {
return function (contextObject, callbackfn /*, thisArg*/) {
return forEach.call(contextObject, callbackfn, arguments[2]);
};
@think49
think49 / getStringByte.js
Created October 19, 2010 15:09
getStringByte.js : 文字列のバイト数を求める
function getStringByte (str) {
return encodeURIComponent(str).replace(/%[\da-zA-Z]+/g, '.').length;
}
alert(getStringByte('テスト')); // 9
alert(getStringByte('test')); // 4
@think49
think49 / expandURI.js
Created October 19, 2010 20:36
expandURI.js : ページ内の全てのa要素から短縮URLを検索し、展開したURLに変換する(制作中)
// expandURI.js
if (!Array.indexOf) {
Array.indexOf = (function (indexOf) {
return function (contextObject, elt /*, from*/) {
if (arguments.length < 3) {
indexOf.call(contextObject, elt);
} else {
indexOf.call(contextObject, elt, arguments[2]);
}
@think49
think49 / jp-domain.js
Created October 20, 2010 12:07
jp-domain.js : JPドメインをパースする
// jp-domain.js
function JPDomain () {
var half_string, hyphen, mark, hiragana, katakana, kanji, TLD, SLD, domain_lastString, alphanum_domain, first_char, middle_char, end_char, japanese_domain;
if (!(this instanceof JPDomain)) {
throw new Error(this + ' is not a object created by constructor');
}
// Base Strings
@think49
think49 / rollover.js
Created October 28, 2010 13:11
rollover.js : foo_off.png に mouseover すると foo_on.png に切り替える
// rollover.js
(function () {
function rolloverListener (event) {
var target, relatedTarget, reg, src;
target = event.target || event.toElement;
relatedTarget = event.relatedTarget || event.fromElement;
if (target.tagName === 'IMG') {
@think49
think49 / ExtXPathEvaluator.js
Created October 29, 2010 12:48
この gist は更新しても反映されない不具合があるため、http://gist.github.com/658057 に移行しました。
// ExtXPathEvaluator.js
function ExtXPathEvaluator () {
if (!(this instanceof ExtXPathEvaluator)) {
throw new Error(this + ' is not a object created by constructor');
}
return this;
}
@think49
think49 / google_ajax_language_api_hello_world.html
Created October 30, 2010 13:48
はじめての Google AJAX Language API
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>はじめての Google AJAX Language API</title>
<script src="http://www.google.com/jsapi"></script>
<script src="./javascript-xpath-latest-cmp.js"></script>
<script src="./ExtXPathEvaluator.js"></script>
<script>
google.load('language', '1');
@think49
think49 / ExtXPathEvaluator.js
Created November 1, 2010 12:05
ExtXPathEvaluator.js : DOM L3 XPath の XPathEvaluator を拡張してノード操作を簡単にしたJavaScriptライブラリ
// ExtXPathEvaluator.js
function ExtXPathEvaluator () {
if (!(this instanceof ExtXPathEvaluator)) {
throw new Error(this + ' is not a object created by constructor');
}
return this;
}