2010.6.26追記
Hatena::Letでブックマークレット公開しました。こちらのほうがブックマークしやすいのでぜひご利用ください。
はじめに
はてなダイアリーのキーワードリンク編集画面におけるチェックボックスの数は、文章の長さに比例して多くなる。僕としては、キーワードリンクの必要性をあまり感じていないので、できることなら取っ払っちゃいたいのだけど、あまりにもチェックボックスの数が多すぎると、手動でチェックする気にならない。
というわけで、ページ内のチェックボックスすべてにチェックをつけるブックマークレットを作ってみた。
まだ荒削りで、どこのページだろうとチェックボックスを見つけたら、ひたすらチェックしてしまうとんでもないプログラムである。キーワードリンク編集画面だけに適用させるには、さらなる改良が必要だけど、まあ暫定版として書いておこう。
※使用するときには、改行コードをエディタで空文字に変換してやって、改行を取り除く必要がある。
javascript:(function() { var inputTags = document.getElementsByTagName('input'); var checkFlag = true; function isCheckAll() { var inputTags = document.getElementsByTagName('input'); var flag = true; for(var i=0; i<inputTags.length; i++) { if(inputTags[i].type == "checkbox") { if(inputTags[i].checked == false) { flag = false; } } } return flag; } if(isCheckAll()) { checkFlag = false; } for(var i=0; i<inputTags.length; i++) { if(inputTags[i].type == "checkbox") { inputTags[i].checked = checkFlag; } } )();
コメントつき
コメントを振ると以下のようなコードになる。すべてチェックされている場合は、チェックを外して、それ以外の場合はすべてチェックする。
//チェックボックスをすべてチェックする。 function checkAll() { var inputTags = document.getElementsByTagName('input'); var checkFlag = true; //チェックボックスがすべてチェックされているかを調べる関数 function isCheckAll() { var flag = true; for(var i=0; i<inputTags.length; i++) { if(inputTags[i].type == "checkbox") { if(inputTags[i].checked == false) { flag = false; } } } return flag; } //すべてチェック済みかどうか判定 if(isCheckAll()) { checkFlag = false; } for(var i=0; i<inputTags.length; i++) { if(inputTags[i].type == "checkbox") { inputTags[i].checked = checkFlag; } } }