| Project Home(Google Code)
| README
| Reference |
| ChangeLog
| License
| Glossary
|
Information on a browser and browser functions is offered.
ブラウザの判別や、ブラウザで使用可能な機能について情報を提供します。
| Property | Type | Value | Detect |
|---|---|---|---|
| uuClass.Detect.ie | Boolean |
IE base browser is true | false |
| uuClass.Detect.ie8 | Boolean |
IE >= 8 is true | false |
| uuClass.Detect.ie8mode8 | Boolean |
IE >= 8 and documentMode >= IE8 is true
IE 8以上で、ドキュメントモードが IE8 以上なら true | false |
| uuClass.Detect.ie7 | Boolean |
IE 7 is true | false |
| uuClass.Detect.ie6 | Boolean |
IE 6 is true | false |
| uuClass.Detect.gecko | Boolean |
Gecko base browser(Firefox, Camino) is true | false |
| uuClass.Detect.fx40 | Boolean |
Firefox 4.0+ is true | false |
| uuClass.Detect.fx31 | Boolean |
Firefox 3.1 ~ 3.9 is true | false |
| uuClass.Detect.fx30 | Boolean |
Firefox 3.0 is true | false |
| uuClass.Detect.fx20 | Boolean |
Firefox 2.0 is true | false |
| uuClass.Detect.webkit | Boolean |
WebKit base browser(Safari, Chrome, Konqueror) is true | false |
| uuClass.Detect.safari3 | Boolean |
Safari 3+ is true | false |
| uuClass.Detect.ipod | Boolean |
iPod or iPhone is true | false |
| uuClass.Detect.chrome | Boolean |
Google Chrome is true | false |
| uuClass.Detect.opera | Boolean |
Opera base browser(Opera, Wii) is true | false |
| uuClass.Detect.opera100 | Boolean |
Opera 10+ is true | false |
| uuClass.Detect.opera95 | Boolean |
Opera 9.5 ~ 9.9 is true | false |
| uuClass.Detect.opera90 | Boolean |
Opera 9.0 ~ 9.4 is true | false |
| uuClass.Detect.wii | Boolean |
Wii Internet channel(Opera 9.5) is true | false |
| uuClass.Detect.air | Boolean | Adobe AIR is true | false |
| uuClass.Detect.std | Boolean | Standards-compliant mode is true, Quirks mode is false
標準モードなら true, 互換モードなら false | false |
| uuClass.Detect.selector | Boolean | Selectors API(querySelector and querySelectorAll) support is true
Selectors API(querySelector, querySelectorAll)が使用可能なら true | false |
| uuClass.Detect.range | Boolean | DOM Level2 Range Module support is true
DOM Level2 Range Module が使用可能なら true | false |
| uuClass.Detect.etraverse | Boolean | DOM Element Traversal Module support is true
DOM Element Traversal Module が使用可能なら true | false |
| uuClass.Detect.disptable | Boolean | CSS(display: table) support is true
CSS(display: table) が使用可能なら true | false |
| uuClass.Detect.minquartz | Number 10 or 16 |
Minimum resolution of setInterval() and setTimeout()(unit: ms)
setInterval(), setTimeout() の最小分解能(単位: ms) | 0 |
| uuClass.Detect.base | String | Base URL(same directory as uupaa-detect.js or uupaa.js)
Base URL(uupaa-detect.js または uupaa.js が配置されているディレクトリ) | "" |
| uuClass.Detect.version | Number | browser(engine) version or build version | false |
| Browser | uuClass.Detect.version |
|---|---|
| Firefox 2.0.0.14 | 20080404 |
| Firefox 3.0.3 | 20080924 |
| Safari 3.1 | 525.13 |
| Opera 9.5β | 9.5 |
| Opera 9.61 | 9.61 |
| IE 5.5 | 5.5 |
| IE 6 | 6 |
| IE 7 | 7 |
| IE 8 | 8 |
URL の取り扱いを簡単にします。
uu.url(url = ".") は絶対 URL または 相対 URL を分解し、 URL の構成要素を格納した Hash を返します。
url に Hash を指定すると、Hash を元に構築した URL を返します。
@param String [url] - 絶対 URL または相対 URL を指定します。デフォルトは "." です。
/Hash Hash も指定できます。
@return Hash/false - URL 文字列の分解に成功した場合は URL の構成要素を格納した Hash を返します。
/String URL の分解に失敗した場合は false を返します。
url に Hash が指定された場合は、URL 文字列を返します。
| Hash property | Value | Type | Example |
|---|---|---|---|
| scheme | スキーム | String | "http" |
| domain | ドメイン | String | "www.example.com" |
| port | ポート番号 | String | "8080" ポート番号が省略されている場合は "" |
| path | パス | String | "/dir/file.ext" パスが省略されている場合は "/" |
| query | QueryString | String | "key1=value1&key2=value2" QueryStringが省略されている場合は "" |
| fragment | フラグメント | String | "menu1" フラグメントが省略されている場合は "" |
| url | 絶対 URL | String | "http://wwww.example.com:8080/dir/file.ext?key1=value1&key2=value2#menu1" |
| base | スキーム + ドメイン + ポート番号 + ディレクトリ | String | "http://wwww.example.com:8080/dir/" |
| dir | ディレクトリ | String | "/dir" ディレクトリが省略されている場合は "/" |
| file | ファイル名[.拡張子] | String | "file.ext" ファイル名が省略されている場合は "" |
| hash | uu.url.query(QueryString)の 実行結果 | Hash | { key1: "value1", key2: "value2" } QueryStringが省略されている場合は {} |
| Hash property | Value | Type | Example |
|---|---|---|---|
| scheme | スキーム | String | "http" このプロパティは省略できません。 |
| domain | ドメイン | String | "www.example.com" このプロパティは省略できません。 |
| port | ポート番号 | String | "8080" ポート番号が不要なら省略するか "" を指定します |
| path | パス | String | "/dir/file.ext" パスが不要なら省略するか "" を指定します |
| query | QueryString | String | "key1=value1&key2=value2" QueryStringが不要なら省略するか "" を指定します |
| fragment | フラグメント | String | "menu1" フラグメントが不要なら省略するか "" を指定します |
| 以下のプロパティは使用されません(無視されます) | |||
| url | |||
| base | |||
| dir | |||
| file | |||
| hash | |||
alert(uu.url({
scheme: 'http',
domain: 'www.example.com',
port: 8080,
path: '/dir/file.ext',
query: 'key1=value1&key2=value2',
fragment: 'menu1'
}));
Run uu.url は可逆です
alert(uu.url(uu.url('.')));
uu.url.toAbsURL(url = ".") は 相対URL(path)を絶対 URL に変換します。 url が絶対 URL ならそのまま返します。
@param String url - 相対 URL を指定します。絶対 URL も指定可能です。デフォルトは "." です。
"." を指定するとカレント URL を絶対 URL に変換します。
@return String - 絶対 URL を返します。
Run
alert(uu.url.toAbsURL());
uu.url.parseQuery(qstr) は query を分解し Hash( { key: value, ... } )を返します。
query に Hash を指定すると、Hash を元に構築した QueryString を返します。
@param String query - QueryString を指定します。
/Hash Hash も指定できます。
@return Hash - 分解した結果を返します。
/String query に Hash を指定した場合は、構築した QueryString を返します。
Run
var query = uu.url.query('key1=value1&key2=value2'); // query = { key1: "value1", key2: "value2" }
alert(uu.url.query(query)); // "key1=value1&key2=value2"
Run 適切にURIエンコードを行います
var query = uu.url.query('#KEY#=日本語'); // query = { "#KEY#": "日本語" }
alert(uu.url.query(query)); // "%23KEY%23=%E6%97%A5%E6%9C%AC%E8%AA%9E" URIエンコード済み
Run uu.url.query は可逆です
alert(uu.url.query(uu.url.query('key=value')));
オブジェクト指向的な"クラス"を JavaScript でも使えるようにします。
| Syntax | Feature 機能 |
Role 役割 | ||||
|---|---|---|---|---|---|---|
| カプセル化 | constructor | destructor | message pump | singleton | ||
| uuClass() | ![]() |
![]() |
- | - | - | シンプルな機能を提供する |
| uuClass.Generic() | ![]() |
![]() |
![]() |
![]() |
- | 汎用的な機能を提供する |
| uuClass.Singleton() | ![]() |
![]() |
![]() |
![]() |
![]() |
データを一元的に管理する機能を提供する |
シンプルなクラスには uuClass() を、より複雑なクラスには uuClass.Generic() を使用してください。
グローバル変数やグローバル関数の代わりに uuClass.Singleton() を使うこともできます。
uuClass(args, ...) は、シンプルなクラスの雛形を生成します。
@param Mix [...] - constructに渡す引数をいくつでも指定できます。 @return Function - シンプルなクラスの雛形を生成するクロージャを返します。
uuClass は、2つの機能を持ちます。
Run new MyClass(arg1, arg2); は、 construct(arg1, arg2) を呼び出します。
function boot() {
var MyClass = uuClass();
MyClass.prototype = {
construct: function(var1, var2 /*, ... */) {
// 初期化
this._var1 = var1;
this._var2 = var2;
},
method: function() {
return this._var1 * this._var2;
}
};
var my = new MyClass(10, 20); // 自動的に construct() を実行する。
document.getElementById("log").innerHTML += my.method(); // "200"
}
window.onload = boot;
uuClass.Generic(args, ...) は、汎用的なクラスの雛形を生成します。
@param Mix [...] - construct に渡す引数をいくつでも指定できます。 @return Function - 汎用クラスの雛形を生成するクロージャを返します。
uuClass.Generic() は uuClass() に機能を追加したものです。より幅広い用途に利用可能です。
uuClass.Singleton(args, ...) は、シングルトンクラスの雛形を生成します。
シングルトンパターンを JavaScript で実装したものです。
一つ存在すれば十分なものや、new する度に新しく生成できてしまうとまずいものはシングルトンクラスにします。
@param Mix [...] - construct に渡す引数をいくつでも指定できます。 @return Function - Singleton クラスの雛形を生成するクロージャを返します。
uuClass.Singleton は uuClass.Generic に、機能を追加したものです。
Run 何度 new してもシングルトンクラスの実体は一つしか生成されません
var MyClass = uuClass.Singleton();
MyClass.prototype = {
construct: function() { log("call construct"); },
stabled: function() { log("call stabled"); },
destruct: function() { log("call destruct"); },
method: function() { log("call method"); }
};
var my = new MyClass();
my.method();
var my2 = new MyClass(); // 二度目のnew
my.method();
log(my === my2); // "true" myとmy2は同じもの(シングルトン)
window.setTimeout(function() {
if (window.confirm("jump to http://www.example.com/")) {
// ページ遷移が発生するため、自動的に destruct() を1度だけ実行する。
window.location.href = "http://www.example.com/";
}
}, 1000);