2

IEとChromeのjsTreeの問題について多くのスレッドをチェックしましたが、どの解決策も役に立ちませんでした。

ファイルに正しいDoctypeを入れました。""バグを修正する最後のバージョンを取りました。

しかし、IEとchromeにはまだ何もありません(「loading ...」メッセージでさえありません)が、Firefox(3つのブラウザーのバージョンに関係なく)では完全に機能します。

次のアドレスを使用して、さまざまなブラウザでこのバグを直接生成して観察できます:http: //lbgi.igbmc.fr/orthoinspector/dbquery/?stype=text

これが私のツリー初期化コードです(jqueryスクリプト内):

var compressedTreeSkeleton = generateCompressedJSONData(organismTreeSkeleton);

// Generate the tree. Data provided is JSON (JavaScript Object Notation).
$(function(){
    $("#treeview").jstree({
        "json_data" : { "data" : compressedTreeSkeleton },
        "types" : {
            "types" : {
                "inner_node" : {
                    "icon" : {
                        "image" : "images/node_icon_closed.png"
                    }
                },
                "leaf_node" : {
                    "icon" : {
                        "image" : "images/leaf_icon_1.png"
                    }
                }
            }
        },
        "search" : {
            "case_insensitive" : true
        },
        "plugins" : ["themes", "ui", "json_data", "checkbox", "types", "search"]

    });
});
}

このコードの最初の行で生成されたオブジェクト(変数compressedTreeSkeleton)の概要は、Chromeコンソールの出力から抽出されます(Webサイトで直接オンラインで確認することもできます)。これは「オブジェクト」のテーブルであり、各テーブルにはツリーのノードの情報が含まれています。この情報(オブジェクト)は、ツリーの作成前にpostgresqlデータベースクエリを介して生成されます。

[ Object {
    date: "2029-05-01"
    genus: "Oryza"
    identifier: "LOC"
    phylo_order: "59"
    phylum: "Eukaryota;Viridiplantae;Streptophyta;Streptophytina;Embryophyta;Tracheophyta;Euphyllophyta;Spermatop…"
    pk_bank: "1"
    pk_organism: "1"
    species: "sativa"
    taxid: "39947"
    __proto__: Object } ,

 Object, Object, Object, Object, (...) ]

次のエラーがChromeコンソールで起動します。

 Uncaught TypeError: Object [object Object] has no method 'jstree'

そしてこれはIEで:

   Object doesn't support this property or method

Firefoxで正常に動作しています...

私はこれらすべてについて迷っています。私がどこを見るべきか考えていますか?アドバイスありがとうございます。

4

1 に答える 1

1

問題は、HTML の次のタグです。

<script type="text/javascript" src="js/jtree/\\_lib/jquery.js"></script>

Chrome と IE は、この失敗したパスを解決し、jquery.tools.min.js にロードされた他のバージョンの jQuery の上にこのバージョンの jQuery をロードします。jstree は非ツール バージョンより前に読み込まれるため、そのメソッドがツール バージョンに追加され、非ツール バージョンによって上書きされます。Firefox では、パスが見つからないため、ツールのバージョンが上書きされることはなく、jstree()関連するすべてのメソッドが利用可能です。

結論: 失敗したスクリプト タグを削除するか、jquery.tools でバージョンの問題を解決してください。

于 2012-11-09T03:55:54.427 に答える