2012-06-06 7 views
6

で行わ更新IMG SRCの変化を示すされていません:JavaScriptのIEはISSUE Javascriptを

で行わ更新IMG SRCの変化を示すされていないIEのバージョン7と8あなたは以下のURLにアクセスしてください場合は、私が何を意味するか見ることができる、と左下の(3)私は別のライナーをしたい、あなたは見本の1つを選ぶ;あなたは "Asahi Chartreuse"を選択すると言うことができます。左のプレビューには何も起こりません。しかし、先に進み、別の色見本を選択すると、左シフトのプレビューが表示され、Asahi Chartreuseが表示されます。それは後ろに1つです。これが私が「リフレッシュ」問題であると信じている理由です。それはクロムでうまく動作します。

IEで:他のコントロールをクリックすると、更新が行われます。

あなたがここにコードを見ることができます:https://www.casemodo.com/test.asp私はSO FAR試したWHAT

私は「ノーキャッシュ」を言わないためにヘッダを追加しようとしました。

「?」を追加しようとしました。 pngファイル名の後の乱数。

srcを変更した後、画像にfocus()を設定しようとしました。

srcを変更した後、style.displayを非表示にして表示するように指示しました。

img srcを変更した後で、ページ上に非表示の(隠されていない)テキスト入力ボックスを作成し、focus()を設定しようとしました。

私はwindow.focus()を設定しようとしました。

srcを変更した後でアラートを設定しようとしました。

GUESS:画面上の他の場所で手動でクリック(フォーカス)するまで、srcを設定した後にJavaScriptエンジンが一時停止します。それで、私が上で試したスクリプトのすべてに到達することはありません。

+0

あなたのコードを表示してください(html + js) – iddo

答えて

0

私は、同じようなIEの問題を、一見奇妙なinnerHTMLの再割り当てによって解決しました。 "container"がimgのparentNodeを参照する変数であるとします。 "container.innerHTML = container.innerHTML"を試してください。これにより、再レンダリングが開始され、誤ったimgが生まれる可能性があります。

2

onchangeの代わりにonclickを使用してください。後者は、いくつかのブラウザではいくつかのフォーム要素でうまく動作しません。質問の

1

コメント:

  • 問題のコードスニペットを記載してください。
  • onchangeイベントのJavaScriptはどこですか?
  • クライアントブラウザがGoogle Chromeの場合は動作しますか? (IE-image-src-bugのように聞こえます)
  • この質問が投稿されて以来、リンクしているデモンストレーションページが変更されました。 私はこれを書いているので、スウォッチをクリックすると、別のページの読み込みが行われます。

提案:

  • 使用setTimeout、タイムアウトイベントが発生し、代わりに元のGUIイベントスレッドの実際の変化が生じることになります。 例えば、元のジャバスクリプトは

7

はその後、nullにsrc属性を設定する設定(image.src = newURL;SomeFunction内部で行われる)

setTimeout(SomeFunction, 10); 

SomeFunction(); 

変化にこの場合であっあなたの新しいURLに:

in jquery :ストレートjs​​の中

var myImg = $('#myImg'); 
myImg.attr('src', null); 
myImg.attr('src', newUrl); 

var myImg = document.getElementById('myImg'); 
myImg.src = null; 
myImg.src = newUrl 

これは私のために働いた - それは怒っ私を運転していました!

+0

それはただ一度しか機能しません:(IEはキャッシュを使用します。imgでもhttp://example.com/img/my.jpg?rand=231123のようなURLを使用しています。 – Yevgen