Jintrick.netagenda2001年10月アーカイブ → 2001年10月01日

IE6 INPUT要素の怪

きちんとGoogleに渡すためのformを生成することにした。

var nForm = document.createElement('FORM');
with(nForm){
 action = 'http://www.google.co.jp/search';
 method = 'GET';
}
document.body.appendChild(nForm);

var nP = document.createElement('P');
nForm.appendChild(nP);

var nInput = document.createElement('INPUT');
with(nInput){
 type = 'text';
 name = 'as_q';
 size = '25';
}
nP.appendChild(nInput);

var nHidden = document.createElement('INPUT');
with(nHidden){
 type = 'hidden';
 name = 'as_sitesearch';
 value = document.domain;
}
nP.appendChild(nHidden);

var nSubmit = document.createElement('INPUT');
with(nSubmit){
 type = 'submit';
 name = 'btnG';
 value = 'search';
}
nP.appendChild(nSubmit);

ところが、生成したFORM要素のinnerHTMLを見てみる(@IE6)と、

<P><INPUT size=25><INPUT type=hidden><INPUT type=submit value=search></P>

属性が足りない。name属性はどこへ。実体としてはあるようだが、innerHTMLで見ると消えている。特に、type=hiddenのvalue属性は実体としても、無い。

with(nHidden){
 type = 'hidden';
 name = 'as_sitesearch';
}
nHidden.value = document.domain;

と、このようにvalueプロパティの代入箇所をwith文の外に出してやったらinnerHTMLにも現われ、Googleにも渡された。意味がさっぱりわからないものの、とりあえずメモ。


webmaster@jintrick.net
公開: 2001年10月01日
カテゴリ: