小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


ページ内のチェックボックスをすべてチェックするブックマークレット

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 : ブックマークレット作成スクリプトのテキストエリアに入力して、スクリプトを自動生成してください。