Twitterで良くネタになっている診断メーカーというウェブサービスがあります。これは適当な名前で占いをするようなものです。
使っていて気がついたのですが、結果が日替わりであるとともに、名前の大文字小文字を区別するようですね。ということは大文字小文字を変えてみて結果がどう変わるか気になるところです。というか、大文字小文字を切り替えて無理やり良い(と思われる)結果を引き出したくなります。
そこで作ってみました。適当な名前を入力すると、その名前の大文字小文字のすべてのパターンを切り替えて診断メーカーにポストするJavaScriptです。
ソースコードを見たい方という奇特な方は続きからどうぞ。
<script type="text/javascript">
var strSeed = '';
var numCount = 0;
var flagPause = false;
function onSubmitShindanmaker() {
	var strUrl = document.getElementById('formUrl').value;
	var strName = document.getElementById('formName').value;
	var flagError = false;
	var objWindow = null;
	
	if (!strUrl) {
		alert('URLを入力してください');
		flagError = true;
	} else if (0 != strUrl.indexOf('http://shindanmaker.com/')) {
		alert('URLは診断メーカーのURLを入力してください');
		flagError = true;
	} else if (!strName) {
		alert('NAMEを入力してください');
		flagError = true;
	} else if (31 < strName.length) {
		alert('NAMEは31文字までしか扱えません');
		flagError = true;
	} else if (strName.match(/[^a-z]/gi)) {
		alert('NAMEはアルファベットしか扱えません');
		flagError = true;
	}
	
	if (!flagError) {
		document.getElementById('formPause').disabled = false;
		document.getElementById('formShindanmaker').action = strUrl;
		strSeed = strName.toUpperCase();
		numCount = 0;
		flagPause = false;
		setTimeout('onTimer()', 500);
	}
}
function onTimer() {
	var strU = '';
	
	if (!flagPause) {
		for (var numIndex = 0; numIndex < strSeed.length; numIndex++) {
			strU += String.fromCharCode(strSeed.charCodeAt(numIndex) + ((numCount >> numIndex) & 1) * 32);
		}
		document.getElementById('formU').value = strU;
		document.getElementById('formShindanmaker').submit();
		numCount++;
		if (numCount < Math.pow(2, strSeed.length)) {
			setTimeout('onTimer()', 5000);
		}
	}
}
function onPause() {
	if (flagPause) {
		setTimeout('onTimer()', 500);
		document.getElementById('formPause').value = 'Pause';
	} else {
		document.getElementById('formPause').value = 'Resume';
	}
	flagPause = !flagPause;
}
</script>
<form action="#" method="post" onsubmit="onSubmitShindanmaker(); return false;">
	<dl>
		<dt>URL</dt>
		<dd><input type="text" name="url" id="formUrl" value="http://shindanmaker.com/67905" class="inputRow2" /></dd>
		<dt>NAME</dt>
		<dd><input type="text" name="name" id="formName" value="" class="inputRow2" /></dd>
	</dl>
	<div class="alignCenter"><input type="submit" value="Execute" class="inputRow4" /> <input type="button" value="Pause" id="formPause" class="inputRow4" disabled="disabled" onclick="onPause()" /></div>
</form>
<form action="#" method="post" target="_blank" id="formShindanmaker">
	<input type="hidden" name="u" id="formU" value="" />
</form>
タグ : JavaScript,Twitter,診断メーカー
2010/12/11 00:47:50 | Trackbacks (0) | Comments (0) | Pastime
URL : https://www.ana-kutsu.com/mt/mt-tb.cgi/571