あほプログラム by Javascript2006年07月03日 11時39分13秒

作ってみた

プログラム (Javascript 版)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">

<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<meta name="generator" content="HeTeMuLu Creator Ver.1.10a">
	<meta http-equiv="content-script-type" content="text/javascript">
	<title>あほプログラム by Javascript</title>
	<script type="text/javascript"><!--
function main_routine() {
	var text = document.forms[0].message.value;
	var value = 0;
	var i;
	for (i = 0; i < text.length; i++)
		value += text.charCodeAt(i);
	var aho = "";
	for (i = 0; i < value; i++){
		aho += "あほ ";
	}
	document.body.innerHTML = "<p><strong>" + aho + "</strong></p>\n" +
		'<form><input type="button" value="もう一度"' +
		' OnClick="location.reload();"></form>';
}
	//--></script>
</head>

<body>

<p>あほあほ。</p>

<p>どう思いますか?</p>

<form OnSubmit="main_routine(); return false;">
<input type="text" name="message" size="20">
<input type="button" value="Enter" OnClick="main_routine();">
</form>

</body>

</html>

解説

入力された文字列の、すべての文字の文字コードを加算した回数だけ、「あほ」を表示するプログラム。以前別ハンで、いくつかの言語で作りまくったのを公開していたやつの Javascript 版。Web 上で動作するもの、という意味ではこれが一番近いかな (クライアントサイドプログラムだし「呆れ返りつつ終了」もしないけど)。

文字コードは Unicode で扱っているため、日本語の文章とか入れると若干処理に時間を食うかもしれない。さらにあんまり長い文章入れるとオーバーフローとか起こすかもしれない (知らんけど)。

ヒント

for ループを用いて変数 ahoあほ あほ あほ ... の文字列を生成しているが、これを直接 document.body.innerHTML に対して行ってはいけない。 innerHTML プロパティは文字列の変更が行われると即座に画面を再描画しようとするため、入力した文字列によっては数十万、数百万回の再描画を繰り返すことになり、結果としてとんでもなく処理が重くなる。ていうか、IE なら間違いなく固まる

ぐるなびアフィリエイトプログラムに参加しようとしたら断られた件2006年07月03日 12時46分53秒

これに応募してみたんだが (個人でも応募できるみたいだったので)、「貴方様のサイトの内容が私どもの希望する内容に合致しておりませんでした」とか言われてしまいますた。(´・ω・`)

本当に内容の問題なのか、単に個人ブログはサービス対象外という考え方なのか。。。つか、サービス内容もよーわからんで申し込むおいらもおいらなんだが。

# 個人的には好きなお店の広告が貼れる Amazon 方式希望なんだけど必ずしもそう言うわけでもなさそうだし。。。