sakanaプログラマーの日記

プログラミングや金融関係について書くブログです。

VBScriptでDocumentとdocumentは何か違うのか?

仕事の都合上vbscriptをしているが、そこで謎の発見があった。

 

IE9 or IE10でDocumentだとallがないが、documentだと使える。

(IE8以前は両方使える)

不思議なことに先にdocumentを使用するとDocumentもallが使えるようになり、

先にDocumentを使用するとdocumentでallが使えなくなる。

 

以下で再現可能

test.html

<!DOCTYPE HTML>
<HTML>
<HEAD>
<meta http-equiv="x-ua-compatible" content="IE=9">
<SCRIPT type="text/vbscript" src=".\uppercase.vbs"></SCRIPT>
<SCRIPT type="text/vbscript" src=".\lowercase.vbs"></SCRIPT>
</HEAD>
<BODY>
<input id="id" type="text">
<input type="button" onclick="vbscript:uppercase()" Value="Document">
<input type="button" onclick="vbscript:lowercase()" Value="document">
</BODY>
</HTML>

 uppercase.vbs

Function uppercase()
	Msgbox(Document.all("id").value)
END Function

lowercase.vbs

Function lowercase()
	Msgbox(document.all("id").value)
END Function

Documentボタンをクリックしても何も表示されないし、その後にdocumentボタンをクリックしても何も表示されない。 

 が、documentボタンを先にクリックするとテキストボックスに入力された値が表示され、その後にDocumentボタンをクリックしても表示される

Documentとdocumentで最初にロードされる型が違って、その後は大文字小文字の区別なく同じ型が呼び出されるってことなのかな?