IEのバグ??JavaScriptのwindow.name

フレーム使ってるページで、
JavaScriptでiframeを使ってサーバ・ブラウザ間の非同期通信をしてたら、
勝手にwindow.nameの値が「display」に。。。。

何じゃこりゃ。。??

iframeを使ってparentのwindowを操作するタイミングで変わってるっぽい気がしました。。。

そのタイミングに、JavaScriptでparentのwindowのname属性を書き直して
なんとか解決。。。

阿部総理

今日、ニュースで阿部総理が出てました。

英語は、話の結論を先に言って、後に補足説明が入るのに対し、
日本語は、結論の補足説明が先に来て、最後に結論を言うそうです。(確か。。。)

司会者が阿部総理にYes/Noの質問をして、
阿部総理が回答するけど、なかなかYesかNoか分かりません。。

で、普通は最後に結論が分かるはずだけど、
阿部総理の話は最後まで聞いてもYesなのかNoなのか分かりません。

ほとんどそんな調子。。。

YesかNoでは答えられないんだったら、先にそういえば良いのに、、、って、
ほぼニートと言われるぼくが、偉そうに思っちゃったりなんかしました。。。。

IEでのJavaScript

JavaScript使ってて、
FireFoxSafariではうまく動くけど、
IE6で動かない事が度々あります。。。

今日、学んだのは以下の2つ。


document.createElementでiframeを作るとき

以下のコードでは、うまくiframeが作られていないのか、
ポップアップが立ち上がりました。。。

var iframeElement = document.createElement("iframe");
iframeElement.name = "upload";
document.body.appendChild(iframeElement);

targetを"upload"にしたformをsubmitする。

うまく動くコードはこちら。

var iflameDivElement = document.createElement("div");
iflameDivElement.innerHTML = '';
document.body.appendChild(iframeDivElement);

targetを"upload"にしたformをsubmitする。

ファイルアップロード2で勉強させてもらいました。
ありがとうございます。。。

IE4、IE5では動かないって言うのは良く聞くけど、
IE6もダメみたい。。。

バグってるのかな??


formの要素をループでまわす

formの中のinputとかの要素をループで取得するとき、
下のコードはダメでした。。。

var someForm = document.someForm;
for (inputName in someForm.elements) {
  var inputElement = someForm.elements[inputName];
  // 何かの処理
}

何か間違ってるのかな??

以下のコードはオッケー。

var someForm = document.someForm;
for (var i = 0; i < someForm.elements.length; i++) {
  var inputElement = someForm.elements[i];
  // 何かの処理
}

IE6は嫌いです。。。