4

この innerHTML コードは IE8 では確実に機能しませんでした: (ただし、IE6 IE7 FF Opera Chrome Safari では機能していました) (確実に機能しないということは、このコードをさまざまな要素の onmouseover ハンドラー内に配置したことを意味します。マウス操作時にテキストが変更されることがあります)特定の要素に対して、時にはそうではない - これにはパターンがなかった - それがうまくいくかどうかは完全にランダムに見えた)

document.getElementById("mydiv").innerHTML="some text";

DOM メソッド (更新されたテキストで div を削除して再追加する) も役に立ちませんでした。

したがって、上記のコードの直後にこれを追加すると、修正されました。

document.styleSheets[0].addRule("#mydiv:after", "content: ' ';");

条件付きコメントを使用して、この 2 行目のコードを IE8 専用として特定しました

私はこれで何年も無駄にしてきたので、これが多くの時間を節約することになると確信しています! 役に立たJquery.text()なかった!

innerHTML は DOM を更新するが、画面要素の更新に失敗する可能性があることを他の場所で読みました。#mydiv の after 疑似クラスのコンテンツを動的に変更し、mydiv のコンテンツを更新する必要があり、画面を更新する (innerHTML が失敗していた) ため、CSS ルールが機能すると思います。

ただし、誰かがより良い解決策を持っている場合は、ぜひ聞きたいです-ありがとう

要求に応じて編集

4

1 に答える 1

-1

innerHTML の代わりに innerText を使用できます

于 2011-11-12T10:38:10.857 に答える