ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read))' < sample.json > sample.yaml
HTML ValidatorのようにJavaScriptの構文が正しいか、非推奨の書き方がされていないかをチェックしてくれるツール
Permutation
A - B - C = 6 A,B,C A,C,B B,A,C B,C,A C,A,B C,B,A
foo = {}; foo['hoge'] = {fuga : 'aaa'}; alert(foo['hoge']['fuga']);
foo = {}; foo['hoge'] = {}; foo['hoge']['fuga'] = 'aaa' alert(foo['hoge']['fuga']);
<a href="javascript:void(0);" onclick="$('#form1').submit();">送信</a>
<a href="javascript:void(0);" onclick="$('#form1').submit(); return false;">送信</a>
動的にscript要素を追加してやることによってクロス・ドメインのJavaScriptファイルを読み込むというテクニック。
IEのみの問題だが、ソース中に日本語が含まれていた場合、ソースの文字コードによって「識別子、文字列または数がありません。」エラーが出たり出なかったりする。
IE6.0SP2 | Firefox2.0 | Opera9.02 | |
EUC-JP | ○ | ○ | ○ |
UTF-8(BOM有り) | ○ | ○ | ○ |
UTF-8N(BOM無し) | × | ○ | ○ |
function foo(){ }; foo.prototype = { /// 日本語コメント init : function(settings) { } };
window.onerror = function(mes,file,num){ alert([ "file : " + file, "line : " + num, "message : " + mes ].join("\n")); return true; }
通常の値とselectとでは取得方法が異なるので注意。
<input type="hidden" />
<select> 〜 </select>
以下の用に、デフォルトのイベントハンドラの替わりにユーザ関数を実行する事ができます。
変数名 = オブジェクト名.イベントハンドラ名; オブジェクト名.イベントハンドラ名 = ユーザ関数名;
<script type="text/javascript"> <!-- var g_submit = null; function load(){ // submit()のオーバーライド g_submit = document.form1.submit; document.form1.submit = pre_submit; } function pre_submit(){ // 送信前にしたい処理 ... // オーバーライドしたイベントを元に戻す document.form1.submit = g_submit; document.form1.submit(); } --> </script> <body onLoad="load();"> <form name="form1"> </form>
function HOGE() { this.type = "select"; this.label= "オブジェクト1"; this.options = new Array("要素1","要素2"); this.func1 = function(){return "func1";} } var ary = new Object(); ary["obj_name1"] = new HOGE(); ary["obj_name2"] = new HOGE(); alert(ary.toSource()); // Mozzila系のみで有効
var properties={obj_name1:{type:"select",label:"オブジェクト1",options:[]},obj_name2:{type:"text",label:"オブジェクト2",options:["要素1", "要素2"],func1:(function () {return "func1";})}}; alert(properties["obj_name1"]); // オブジェクト alert(properties["obj_name1"].type); // 要素取り出し alert(properties["obj_name2"].options[0]); // 配列要素取り出し alert(properties["obj_name2"].func1()); // 関数実行
<head> <script type="text/javascript" charset="EUC-JP" src="tooltip.js"></script> </head> <body> <div id="toolTipLayer" style="position:absolute; visibility: hidden"></div> <script language="JavaScript"><!-- initToolTips(); //--></script> <a href="javascript:void(0);" onMouseOver="toolTip('ほげほげ')" onMouseOut="toolTip()">VIEW</a></td> </body>
Stringクラスのreplace()関数は、正規表現が使えて便利ですが、パターンに変数が使用できません。
var str = "hogehoge"; var rep = " "; str = str.replace(/^/mg, rep); // 行頭に空白を追加(○正常動作) str = str.replace("/^\\" + rep + "/mg", ""); // 行頭の空白を削除(×正常に動作しない)
eval()を使うと動作します。
str = eval('str.replace(/^\\' + rep + '/mg, "");');
alert();で変数名を表示してるようなデバックだと、関数、オブジェクト等が表示されない。
alert()デバックの変わりに使える手法。
以下のリンクから、debug.jsを落としてきて導入する。
debug.p(変数名);
とすると、別ウインドウでその変数の中身を表示してくれる。
<html> <meta> <script language="JavaScript" src="debug.js"></script> <SCRIPT language="JavaScript"> var type_str = "任意の文字列"; var type_int = 0; var type_function = function(){}; var type_object = new Object(); debug.p(type_str); debug.p(type_int); debug.p(type_function); debug.p(type_object); </SCRIPT> </meta> <body> </body> </html>
左側のセレクトボックスから右側のセレクトボックスへ項目を移動できる。
多数の項目から一部分を選択させる際に、マウスのみで操作させたい時に使う。
対応ブラウザ | IE6.0、Opera7.0、Firefox1.0 |
---|