1

OK、私はこの HTML コードを持っています:

<head>
    <script type="text/javascript" src="js/jquery.1.3.2.min.js" ></script>
    <script type="text/javascript" src="js/jquery-ui.min.js" ></script>
    <script type="text/javascript" src="js/funciones.js" ></script>
</head>

<body> 

    <div>
    <a><div id= "0" class="Button" href="./es/uno.xml">uno</div></a>
    <a ><div id= "1" class="Button" href="./es/dos.xml">dos</div></a>
    <a ><div id= "2" class="Button" href="./es/tres.xml">tres</div></a>
    </div>

    <br/>
    <br/>
    <br/>

    <div id="content" class="content">

    </div>

</body>
</html>

そしてこのJavaScriptコード:

 $(document).ready(function() {
        $('.Button').click(function() {
        var href = $(this).attr('href');

        if( typeof href != "undefined" && href != ""){
            $.ajax({
                url: href,
                dataType: 'text',
                success: function(data) {
                            //alert($(data).contents().contents().text());
                            $('#content').html(data);
                            ultXML = href;
                        }
            });
        }
    });
});

上記のコードにより、div コンテンツにタグがまったくない 3 つの異なる xml ファイルをロードできました。Firefox では正常に動作しますが、Chrome では動作しません (Wind または Ubuntu Chromium のいずれでもありません)。

4

2 に答える 2

2

if 条件を に変更しif(href) { ...ます。値が未定義または空の文字列であるかどうかを確認しています。そうすると、両方が false と評価されますif(href) { ...

現在、Windows でクロムを使用していますが、コードは機能しているようです (もちろん、ファイルがないため 404 エラーがスローされます)。

それでも問題が解決しない場合は、Chrome 開発者ツールを開いて、[ネットワーク] に ajax リクエストが表示されているかどうかを確認してください。

更新: ajax の成功に関する空白のアラートを含む jsfiddleを追加しました

于 2012-06-26T02:12:08.773 に答える
0

私はついに愚かな初心者のエラーが何であったかを発見しました! コードに問題はなく、うまく機能しています。問題は、ローカルでテストしていたときでした:

file:///home/.../index.html (ナビゲーション ブラウザ バー)

FF は ./es/uno.xml のパスを見つけることができますが、(理由はわかりません) Chrome はできません。そのため、DIV コンテンツを何も置き換えません。

次のようにファイルをサーバーに配置してアクセスすると、問題なく動作します。

http://example.com

みんなありがとう!

于 2012-06-27T20:25:04.610 に答える