2012-01-19 18 views
4

私は一日中解決策を探していましたが、まだこのエラーが表示されています。jquery .load()のデータがie8以下に挿入されていません

これは、私たちのクライアントのためのExpression Engineセットアップであり、私たちはajax-navigationを実装したいと考えています。このため、デフォルトの$ .load()関数を使用しています。これはie9、FF、Safari、Chrome、Operaで完璧に機能しますが、ie8以下では機能しません。

コールバック関数をテストしました。コールバック関数が呼び出され、データが送信され、ログオン時にコンソールで読み取ることができます。しかし、何らかの奇妙な理由から、データは挿入されません。ここで

コードです:

load_page: function(url, func){ 
    $('#content').load(url+' #content>div', function(data, textStatus, jqXHR){ 
     console.log('page loaded!'); 
    }); 
} 

あり、余分なコードの全体の束は、コールバック関数にあったが、私は、全体のJavaScript/CSSのすべてを掃除してきました。バグを探すには何も見つかりません。

私はURLとダウンロードを追加することを決定したコメントに基づいて:問題で、http://www.track.be/devo_9836/nl/ee.php

  • ファイルのパケットを:

    パズルのもう一つの部分: JavaScriptで何か変なことが起こっています。 Googleマップapiが正しく機能しない場合でも、Googleマップapiを使用すると、これが私に起こったのは初めてです。

    EDIT:

    を回答私は最終的に、@epascarelloのおかげで、この質問への答えを見つけました。実際に私がインポートしようとしていたデータの欠点です。以下のIE8 &はHTML5を理解していないため、DOMに要素をインポートしようとしますが、データを警告するとき、[オブジェクトHTMLUnknownElement]、[オブジェクトHTMLUnknownElement]、[オブジェクトHTMLUnknownElement] ...

    記事要素の代わりに古いdivを使用するようにデータのマークアップを変更したところ、すべて正常に機能しました。

  • +2

    これは逃したばかりのコードですが、機能を終了しましたか?私はただ1つを見る} – Jere

    +1

    ロードされているデータは何ですか? – epascarello

    +0

    IE8で壊れているデータが読み込まれている可能性があります。 –

    答えて

    3

    が欠落しているでそのURLが無効なHTMLを返す場合(例えば、余分な終了タグ)ローディングや正しい要素の検索を停止することができます。

    私の例では、URLからHTMLを修正して正しく動作させるだけでした。

    -1

    いくつかの機能がサポートされていますが、他の機能はサポートされていません。例えば、私の個人的な嫌悪感の1つは、innertextがie7,8ではサポートされているが、FoxやChromeではサポートされていないことです。あなたが興味を持っている場合、互換性チャートはhttp://www.quirksmode.org/dom/w3c_html.htmlです。

    ボトムラインでは、自分でプラグインを変更する予定があり、すでにモダライザを試していて助けにならなかった場合、別のデータロード方法を使用する必要はありません。私の提案は.htmlを使用することです、あなたはそれで間違って行くことができないか、またはjsのhtmlを自分自身に追加して手渡します。よりシンプルなソリューションが常に最適です。

    0

    $.load()作品IE8ではです。私の推測では、以前のJSエラーがあり、IE8でのみトリガされているため、正常に機能しないか、まったく呼び出されません。私はこのコードで間違って見ることができます

    +0

    私は既にテストを作成しています。http://stijnd.be/ie8_load.zip - 同じ問題 –

    +1

    ブラウザキャッシュに既にあるファイルのIE8で 'load'が起動しません。 – feeela

    1

    唯一のことは、あなたが、私は同じ問題を抱えていたと私は気づい閉じ括弧

    load_page: function(url, func){ 
        $('#content').load(url+' #content>div', function(data, textStatus, jqXHR){ 
          console.log('page loaded!'); 
        } // <-- this one 
    }); 
    
    +0

    真で、コードをコピーしている間に間違いました。私は私のスクリプトをチェックして、そのコードは正しいものでした。それ以外の場合、コンソールは常にエラーを出力します。答えは –

    2

    AJAXリクエストは偽

    $ .ajaxSettings.cache =のように、ほんの少しの魔法、IE8にキャッシュされます。

    使用してロード関数の前

    http://zacster.blogspot.in/2008/10/jquery-ie7-load-url-problem.html

    http://api.jquery.com/jQuery.ajax/

    キャッシュ(デフォルト:真、dataTypeと 'スクリプト' と 'JSONP' の偽)
    型:Boolean
    に設定されている場合falseの場合、要求されたページがブラウザによって強制的にキャッシュされません。注:キャッシュをfalseに設定すると、HEADおよびGET要求でのみ正しく動作します。これは、GETパラメータに "_ = {timestamp}"を追加することによって機能します。このパラメータは、GETによって既にリクエストされているURLにPOSTが行われたIE8以外の他のタイプのリクエストには必要ありません。

    +0

    です。これが一つです。 – dkellner

    関連する問題