iso tank - プログラムな?話 2009年 09月

助けてください。本気で。

俺にプログラミングその他を教えてくれ。できたら今直面している問題を解決して。

ブラウザ:
ソフトウェアベンダーが独自開発したアプリケーションに載っている、これまたベンダー独自開発のIEコンポーネントブラウザ。 ちなみにインストールされているIEのバージョンは6あたり
俺が作ろうとしたプログラム:
jQueryを利用した小さなプログラム。その日の日直や宿直を表示する。
現象:
$.ajaxで、success: function(foo){var(foo)}とすると、その関数は正常に完了するが、そのページでPDFを開こうとするとIEのスクリプトエラーが発生。 「インターフェイスがサポートされていません」と出る。が、そのまま続行するとPDFは普通に開ける。htmlは何のエラーもなく開ける。
サイト:
いまだに<frameset>とか<frame>とか使ってるうんこな内部用サイト。
今のところ判明していること:
  • たとえばjQueryを使わずに”document.write("Hello, World!");”とかすると普通に表示される。 なので発生のタイミングはおそらくjQueryでデータの読み取りに成功して関数が呼び出された直後から。
  • コマンドプロンプトで”regsvr32 urlmon.dll”を実行してからアプリケーションを再起動すると、エラーなくPDFが開けるようになる。 でもPC再起動するとまたエラー発生。
  • うんこなフレームを使ってるサイトなので、ためしにpdfを別ページに開くように”target=_top”とかしたらうまくいった。 どうやらこのプログラムを呼び出しているページにpdfを呼び出そうとすると?エラーが起こるらしい。他のページに移動とかしたが状況まったく同じ。
とりあえずどうしよう:
  • PCにWindowsUpdateをかけてIE近辺のプログラムを更新すれば直るかもしれないが、下手に更新かけてシステムに悪影響が出たらかなり困る。主に俺が死ぬ。 あと作ったプログラムが余計に動くなったらやっぱり俺が悲しみで死ぬ。だいたいプログラム一個の都合でシステムを更新するってどうよ。ねぇ。
  • 日直や宿直を表示する部分をフレーム分けてさらに別ページにしようかと思ったがレイアウト的にカオスになるので困っちゃん。
  • つまりスクリプトを呼び出しているページにPDFを呼び出さなきゃいいわけだから、<frameset>とか<frame>とか書いちゃってるindex.htmlで スクリプトを呼び出して、つまりいわゆるleft.htmlだとかright.htmlだとかいうところの日直表示テーブルを更新できないかとか。 なんかその類のHPを見ると色々方法書いてるんだけど、なぜかうまくいかない。getElementsByTagNameはなにも返さないしcontentWindowも働いていないかも。 しかもそれがjQueryになるとどうすればいいのかもっとわからない。

とりあえず仙台のヨドバシ行ってjQueryの本とajaxの本を買ってきた。今日家帰ったら読んではみるけどこんなピンポイントな解決方法書いてるわけないだろ。

PC、爆発しなさい。

あ、家のPCは爆発しちゃだめだからね。