div要素にデータを挿入するときIE8は互換モードを強制的に
質問
私はIE8の互換モード一日中戦ってきたと私はそれでレンガをチャックするのに約思います。
私はいくつかのコードを、持っている用途のjQuery 1.2(はい、それは古いです - それを変更することはできません)、弊社のWebアプリでいくつかのレコードを検索します。検索の結果は、(それが行の下にスペースを開き、別のTRの下および挿入HTML JSONフィードからデータ作成).animateを使用して()。
のレコードの内容を表示するためにクリックすることができますにはIE8、それは他のすべてのブラウザ(IE7、FF3.0 +、クロム、サファリ)に罰金を作品互換モードで再ロードするコンテンツの力を見るために、結果をクリックします。私は、デバッグにIE8の開発者ツールバーを使用して、なぜこれが起こっている追跡しようとしてきたが、私は、任意のエラーまたはそれを引き起こしている可能性があります何の証拠を見つけることができるされていませんでした。
コードすることを示しているプレビューます:
// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);
...
// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(d, textStatus){
var _content = d.assessmentHtml;
var _preview = $("<tr id=" + assessmentId + "></tr>");
// loadContent
_tr.after(_preview.animate({
height: 50
}, 500, 0, function() {
msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
}));
},
error: function(xmlHttpReq, status, errorThrown) {
// display error msg
}
});
IE8の開発ツールを使用してコードのステップ実行、それはjQueryのコードに、こことどこかに渡されると、それは互換モードでリフレッシュすることがあります。私は何が起こっているかのように途方に暮れて本当によ、私はJSON、W3Cで出てくるHTMLコードを検証してきたし、それはすべての罰金です。
私はより良いそれを引き起こしているものを追跡したり、私はちょうどこれらのページにIE7モードを強制する必要がありますどのように誰もが知っていますか?
編集:画面の上に表示される検索は、AJAXで行われる「ポップアップ」。それのテンプレート(HTMLベース)は、別のHTMLファイルからロードされ、元のページの一番下にあるdiv要素の中に注入されます。この手段(<html></html>
タグなどで)ネストされたHTMLファイルが存在することになります。これはまた、それに影響を与えるだろうか?
を
編集3:これらの重複したタグを削除しても問題が解決しませんでした。
編集2:まだこれを解決していません。それだけでIE8が正しく表示され、ブラウザの癖にそれを置くしないというものの一つですか?私は本当にこの上でいくつかの助けをお願い申し上げます。
解決 3
私たちはにコンテンツを挿入し、ひいては、ハードアサートを引き起こしていたのdivのスタイルのための最大の高さを使用していました。リンク質問上記のこの問題に遭遇した他の誰のための回避策があります。
他のヒント
での力は、あなたが何かを言うフライアウトバルーン通知を取得することを意味しています:「Internet Explorerは、このページで問題が発生したため、互換モードでそれをロードしています」 ?
もしそうなら、その手段は、あなたは、IEのバグをヒットしました。 「ハードASSERT」と呼ばれ、それは(それだけで回復不能な状態になった、ではないAVやエキサイティングなもの)レイアウトエンジンがクラッシュしたことを意味し、したがって、IEを使用して、のいくつかののコンテンツをユーザに提供しようとします古いレイアウトエンジンます。
問題はまだIE9で発生した場合、、 http://connect.microsoft.com/ieでバグを報告してくださいの
ありがとう!
あなたのDOCTYPEを確保持って、X-UA-互換性のある正しい
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
そして、ちょうど<head>
<meta http-equiv="X-UA-Compatible" content="IE=8">