日曜研究室 〜技術的な日常〜

技術的な観点から日常を綴ります

   8月 29

IE:jQueryの.html()でobject要素を書き出すとExternalInterface.callで戻り値が取得できない

タイトルで殆ど説明してしまってますが、たとえば特定のdiv要素の中に動的にobject要素を追加してFlashを読み込み、そのFlashの中で ExternalInterface.callを使って、JavaScriptの関数を呼び出しつつ戻り値を取得して、それをFlashの挙動に反映させるようなものを作ってたのですが、IE(6と7で確認)の場合のみJavaScriptの戻り値が取得できませんでした。 で、色々試してる中で、jQueryの関数を使わずにdocument.writeすればIEでも正常に動作することは突き止めましたが、document.writeはページロード完了後に呼び出すと、その出力内容でページを書き換えてしまうため、回避方法がそれしかないとするととても不便です。 さらに色々試してみると、どうもjQueryのhtml関数が悪さをしてるようで、例えば $(‘Flashのガワになるdiv’).html(‘Flashを読み込むobject要素のhtml’); みたいに書いてた部分を $(‘Flashのガワになるdiv’).get(0).innerHTML = (‘Flashを読み込むobject要素のhtml’); と書き換えたらうまくいきました。 jQueryとExternalInterfaceを同時に使うときは注意です。 しかし、html()で内部でinnerHTML使ってるだけだと思ってたんですけど、ちょっと違うようですね。innerHTMLの前に正規化処理でもあって、それが悪影響を及ぼしてるのかも知れません。 実は以前、IEだけでExternalInterface.addCallBackがうまく動作しない問題もあったのですが、今回の方法でそちらもうまく動作するかもしれません。

Read the rest of this entry »

   7月 03

続 アドレスバーに入力できない

全然続ではないですが、今日も会社でIEとExplorerのアドレス欄が灰色になって入力できなくなった人がいたので、コントロールパネルのソフトウェアの追加と削除からJWordをアンインストールしてもらって解決しました。 Wikipediaでも評判悪いし、積極的にインストールしてるのでなければ(99%の人がそうだと思いますが)、アンインストールをオススメします。アドレスバーに入力できなくなる以外の不具合もあるようですし。

Read the rest of this entry »

   6月 06

IEとExplorerのアドレスバーに入力できない

アドレスバーは表示されてる。 アドレスバー左の「アドレス」という文字がグレーになってる。 アドレス欄に入力できない。 アドレスバー以外の部分は正常に動作する。 こういう場合の対処法です。 JWordを消せ!!! 具体的には、「コントロールパネル」→「プログラムの追加と削除」からJWordをアンインストールしてください。

Read the rest of this entry »