#author("2017-04-25T10:27:39+09:00","default:admin","admin")
-[[JavaScript]]
-[[JavaScript/ツール]]
-[[JavaScript/V8]]
-[[JavaScript/イベント]]
-[[JavaScript/サーバサイド]]
-[[JavaScript/タイマー]]
-[[JavaScript/トラブル事例]]
-[[JavaScript/ライブラリ]]
-[[JavaScript/ローカルファイル]]
----

-[[JavaScriptist:http://javascriptist.net/]]
-[[Core JavaScript 1.5 ガイド:https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide]]

-[[一撃必殺JavaScript日本語リファレンス:http://www.openspc2.org/JavaScript/]]
-[[初めてのJavaScript 第2版 サポートページ:http://www.marlin-arms.com/support/ljs2/]] ... プログラム例あり

----

* Tips [#n7d2f0d0]
** idとname [#m1a6137a]
-[[タグのidとname、nameで取得する場合:http://javascript.g.hatena.ne.jp/tetsu23/20060616/p1]]
-[[getElementById()でname属性が検索される?:http://d.hatena.ne.jp/daisun/20080410/1207837641]]

* ブラウザの戻る対応 [#ma07f2b2]
FirefoxとSafariは、「戻る」「進む」で、キャッシュによりonloadがスルーされるような挙動をする

-[[onloadイベントの呼び出しがhistory.backとかの時にブラウザ毎に挙動違うのが気になったので軽く調査:http://www.chin3.net/tech/javascript/029.html]]
-[[自分のページ(およびcookies)がSafariにキャッシュされるのを防ぐにはどうすればよいのでしょうか?:http://developer.apple.com/jp/internet/safari/faq.html#anchor5]]

* 同一生成元ポリシー(Same Origin Policy) [#p5635345]
-セキュリティ上の懸念から、スクリプトによるアクセスの範囲を同一のドメインから提供されるコンテンツのみに制限

* クロスドメインアクセスのテクニック [#hb47a55f]
** JSONP [#vcb28569]
-JavaScriptの読み込みが同一生成元ポリシーに制約されないことを利用
-長所
--Google、Yahoo! など多くのWebサービスがJSONP形式のAPIインタフェースを実装済み
-短所
--任意のコードの実行を許してしまう可能性がある
--送信できるのはHTTP GETリクエストのみ(IEの場合は最大2083byte)

** フラグメント識別子を利用 [#zdbe8049]
-長所
--単なるメッセージ交換であるため、送受信されるデータフォーマットのチェックが可能
--アクセスを許可するドメインを選択可能
-短所
--送信するサイト側にレシーバ用のHTMLの配置を事前に行っておく必要がある
--メッセージ送受信時にURLのフラグメント識別子にメッセージをエンコードする必要がある(URLの最大長に注意)
--IEの場合、フレームリロードの度にクリック音が発生する ← IEうざい。消えろ!

** window.nameを利用 [#a11d23a4]
-[[window.nameによるクロスドメイン通信:http://d.hatena.ne.jp/shinichitomita/20081016/1224182679]]

* デバッガ・チェックツール [#z370164a]
-[[Companion.JS:http://www.my-debugbar.com/wiki/CompanionJS/HomePage]]
--[[Companion.JS/Installing:http://www.my-debugbar.com/wiki/CompanionJS/Installing]]
--Microsoft Script Debugger Engineが入っている必要あり(上記ページから
-[[JSLint Multi:http://code.google.com/p/jslint-multi-widget/]]
-[[JSLint:http://www.javascriptlint.com/]]

* 圧縮ツール [#zedafbfc]
-[[JavaScriptの動作を軽くするための工夫:http://itpro.nikkeibp.co.jp/article/COLUMN/20080109/290747/]]
-[[YUI Compressor:http://developer.yahoo.com/yui/compressor/]]

* Cookie [#f6f90a03]
-[[とほほのCookie入門:http://www.tohoho-web.com/wwwcook.htm]]
-[[クッキーを使う方法:http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_007.html]]
-[[cookieで日本語を使う(escape/unescape):http://javahiyori.bake-neko.net/idea/js/encodecookie.html]]
-[[クッキー(Cookie):http://www.komonet.ne.jp/~perl/chap3.htm]]

-[[JavaScript - cookie,cookieEnabled:http://fstyle.ddo.jp/archives/2005/08/javascript_-_2.html]]
-[[JavaScriptでcookieを操作する時はjquery.cookie.jsを使おう - 文殊堂:http://d.hatena.ne.jp/monjudoh/20080724/1216871110]]
--[[JavaScriptを使いこなそう(2):http://daredemopc.blog51.fc2.com/blog-entry-254.html]]
-[[JavaScriptでクッキーを超簡単に使うライブラリ「Cookie Manager」:http://phpspot.org/blog/archives/2006/11/javascriptcooki.html]]
-[[prototype.jsを拡張するJavaScriptライブラリ (LIVEPIPE):http://youmos.com/news/livepipe]]
-[[cookie-js:http://code.google.com/p/cookie-js/]]

* イベント [#ba0a4280]
-[[イベントの処理:http://www.tryhp.net/dynamic07.htm]]
-[[onmousedown属性 onmousemove属性 onmouseup属性:http://www.seo-equation.com/html/html/onmousedown]]
-[[JavaScriptのイベントハンドラに頭を悩ます。。:http://www.res-system.com/weblog/item/581]]

** ウィンドウを閉じたイベントでの処理 [#c6eac12f]
-[[Firefoxでのwindow.event:http://p2b.jp/1152131691]]
-[[Firefoxでの擬似window.event:http://p2b.jp/1149066600]]
-[[prototype.js の Event.observe を使った onbeforeunload について:http://cl.pocari.org/2007-07-20-1.html]]

IEはこれで動く
 window.onbeforeunload = function()
 {
     if(((event.clientX > document.body.clientWidth) && (event.clientY<0)) || event.altKey )
     {
         alert("閉じちゃ、いやーー!!");
     }
 }

prototype.js を使って同様のことができる
 <script type="text/javascript" src="prototype.js"></script> 
 <script type="text/javascript">
 Event.observe(window, 'beforeunload', function(e) {
     // イベントをキャンセルする場合は何も返さない
     return e.returnValue = 'beforeunload';
 });
 </script>

* ネットワーク [#g5bf5f9c]
-[[JavaScript Tips ネットワーク編:http://allabout.co.jp/internet/javascript/subject/msubsub_series_javascript04.htm]]

* 文法的なこと [#i879ef86]
** 変数、プロパティが定義されていない(undefined)かの判定 [#vd75a57f]
-[[Enjoy*Study:http://d.hatena.ne.jp/onozaty/20070326/p1]]
--[[http://d.hatena.ne.jp/kimpo/searchdiary?word=JavaScript]]

** その他 [#d035a5fc]
-[[オーバーライドと多重定義について:http://chaichan.web.infoseek.co.jp/src/javascnew05.htm]]

-onClickだとうまくいかなくて、onMouseDownだとうまくいくといったケースがある

* テストツール [#l62bfb69]
** [[Selenium:http://www.openqa.org/selenium/]] [#nd5932ee]

-WEB+DB PRESS vol.31
-http://d.hatena.ne.jp/secondlife/20050525/1116947520

* 開発ツール [#b92c16e9]
** デバッガ [#de0f8db6]
*** [[Venkman - JavaScript Debugger:http://www.mozilla.org/projects/venkman/]] [#od8fb954]

*** [[debug.js:http://bobchin.ddo.jp/wiki/index.php?Javascript%2F%A5%C7%A5%D0%A5%C3%A5%B0]] [#l2994adf]

*** [[objectdump.js:http://nazo.yi.org/nazonojs/objectdump.js]] [#k5c98596]

*** [[jki-debug.js:http://www.kawa.net/works/js/jkl/js/jkl-debug.js]] [#w67d23dd]

*** [[Log4JavaScript:http://www.jroller.com/page/jmars?entry=log4javascript]] [#dec25035]

* 実例 [#c9b96c7a]
-[[JAVASCRIPT CONTROL EXAMPLES:http://www.jeroenwijering.com/embed/javascript.html]]
-[[音声・動画配信(ストリーミング):http://f32.aaa.livedoor.jp/~azusa/index.php?t=strm]]

-[[JavaScriptでランダムな文字列を生成:http://abui.nowa.jp/entry/5da5d44eee]]
-[[JavaScript でハッシュアルゴリズム:http://user1.matsumoto.ne.jp/~goma/js/hash.html]]
-[[JavaScriptでSHA-1を計算するライブラリ:http://b.hatena.ne.jp/entry/5377172]]

* その他 [#naeea35d]
-[[完全に状況を掌握した画像の遅延読み:http://d.hatena.ne.jp/uupaa/20080413]]
-[[IEのJavaScriptの笑っちゃう挙動:http://d.hatena.ne.jp/hoshikuzu/20071018]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS