1

好的,我有这个 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) { .... 您正在检查该值是 undefined 还是空字符串,如果您这样做,两者都将评估为 false if(href) { ...

我现在在 Windows 中使用 chrome,并且您的代码似乎可以工作(当然它会抛出 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 回答