IEのinnerHTMLにはscriptタグを含んではダメだって

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

あああ、疲れました・・・orz

スポンサーリンク

個人的なことですが、結婚式の日にちが近づいてきました。準備もしなきゃいけないのですが、プログラムばかり書いている私に奥さんが切れ気味なのは・・・気のせいということにしておきます。(冗談です、笑)

javascriptで「document.getElementById」書きすぎたせいで手が痛いです。javascriptを勉強して書けるようになればなるほど、IEのDOM標準を無視した独自仕様が段々嫌になってくる。
FireFoxなら動くけどIEはダメというのが、けっこうあります。それとIEには、FireFoxのようなjavascriptの実行結果のエラーコンソロール機能ってついてないのでしょうか?FireFoxの真似するんなら、そこも真似すれば良いのに。

で・・・先日公開したアマちぇっき(※ 申し訳ありませんが、あまチェキはサービスを終了しました。)のAjax版を作りました。

アマゾンアソシエイト用のブログパーツを簡単作成できるようになっています。
まだ動作確認が不完全で、いくつかバグもありますけど、とりあえずオープン。
Ajax使ってるせいか、写真拡大のとこがウィンドウ幅を超えるバグがあるのだけど、これ今んとこ直せてません。ブログパーツのほうでは、多分ちゃんと動くと思いますけど。

あと、はまったのがIEの場合のinnerHTML。

document.getElementById('hoge').innerHTML = '<script type="text/javascript" src="hogefile"></script>';

って書くと、FireFoxでは普通に動くが、IEでは動かない仕様になっているらしい。動かないというか、IEの場合、innerHTMLにscriptを含む値を設定しようとすると空っぽになるようです。

tyoro.exe: innerHTMLでscriptタグを出力する話
innerHTMLでscriptする – Thousand Years

ブログパーツ作成部分で、ソースコードを生成するのに上記のように書こうとしたら動かず・・・。解決策もあるようですが今いちなので、innerHTMLにscriptタグを設定するのは使わないことにしました。
結局PHPでPOST情報を処理して、ソースコードを生成する方法にした。ほんとは、javascriptで書けるなら、そのほうがユーザーフレンドリーなのですけど。

Ajaxはとても面白く、勉強してる途中でJSONのことを知ってちょっと感動しました。JSON使えばjavascriptでのXML処理がめっちゃ楽になる。ブラウザ間の互換性を保つためのjavascriptライブラリも、色々便利なものがあるみたいです。

今回は勉強のためもあって、素のjavascriptで書きましたけど、getElementById書くの疲れたので、次回からライブラリを使うことにしよう。とりあえず、prototype.jsjQueryをマスターする予定です。

スポンサーリンク
 
スポンサーリンク