2010.6.26追記
Hatena::Letでブックマークレット公開しました。こちらのほうがブックマークしやすいのでぜひご利用ください。
はじめに
2年前くらいにすべてチェックブックマークレット - 大人になったら肺呼吸というエントリで、ページ内のチェックボックスをすべてチェックするブックマークレットを作成した。これを少し改良してみた。
僕が利用しているTODOリストサービスのcheck*padなんかはチェックボックスに対してonclickのイベントが仕組んであって、チェックされた際のクリックイベントによって処理が動作するようになっている。これに対応するため、チェックボックスにonclickイベントが存在したら、その関数を呼び出すように修正した。
仕様
- ページ内のチェックボックスをチェックする。(onclickイベントもついてに呼び出す)
- すべてチェック済みの場合は、すべて外す。
ソースコード
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") { if(inputTags[i].checked != checkFlag) { inputTags[i].checked = checkFlag; if(inputTags[i].onclick) { inputTags[i].onclick(); } } } }
使い方
上記のコードをWDF - Software : ブックマークレット作成スクリプトのテキストエリアに入力して、スクリプトを自動生成してください。