昨日の物を修正

追記

もし使おうという方は、実際にはもう以下の話は古いので、id:toinami:20050828の物を使って下さい。


http://d.hatena.ne.jp/toinami/20050802/p1 を、深く考えずに修正。
HTMLの内容が(今後もずっと)まともだと信じて、不要なチェック外してみたり、昨日は思い出せなかったswitch文を使うようにしてみたり。

// Copyright (C) 2005, toinami.
//
// ==UserScript==
// @name          HatenaDiary edit date from URL
// @namespace     http://d.hatena.ne.jp/toinami/
// @include       http://d.hatena.ne.jp/*/edit?date=*
// @include       http://*.g.hatena.ne.jp/*/edit?date=*
// ==/UserScript==
// v0.2
// ・name属性のないinput要素なんて無いだろうからその辺のチェックとか削除。
// ・toLowerCaseとかも要らないだろう。
// ・if→switch-case
// ・はてなグループの編集画面でも使えるよう@include追加

(function () {
	var urldate;
	location.href.match(/.*edit\?date=(\d{8}$)/);
	if (RegExp.$1) { 
		//alert(RegExp.$1);
		urldate = RegExp.$1;
	} else {
		return;  //日付が8桁じゃないとか数字じゃないとか
	}
	urldate.match(/^(\d{4})(\d{2})(\d{2})$/);
	var y = RegExp.$1;
	var m = RegExp.$2;
	var d = RegExp.$3;

	var inputTags = document.getElementsByTagName("input");
	//var modified = false;
	for (var i=0; i<inputTags.length; i++) {
		var inputTag = inputTags[i];
		switch(inputTag.getAttribute("name")) {
		case "year":
			if (inputTag.value==y) continue;
			inputTag.value=y;
			//modified = true;
			break;
		case "month":
			if (inputTag.value==m) continue;
			inputTag.value=m;
			//modified = true;
			break;
		case "day":
			if (inputTag.value==d) continue;
			inputTag.value=d;
			//modified = true;
			break;
		default:
        	}
	}
	//if (modified) {
	//	alert("date update");
	//}
})();