2012-06-26 3 views
1

ОК, у меня есть этот HTML код:AJAX работает на Firefox, но не на Chrome

<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> 

и этот яваскрипта код:

$(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; 
         } 
      }); 
     } 
    }); 
}); 

Приведенный выше код, дайте мне не загрузить 3 diferents XML файлы не теги вообще в содержимом div. Он работает нормально в Firefox, но он не работает на Chrome (ни ветер, ни Ubuntu Chromium)

+0

Единственное, что мне не нравится, это «тип». Href будет либо строкой, либо пустой, поэтому я не вижу смысла в этом. Остальное выглядит просто отлично –

ответ

2

Измените условия if на if(href) { .... Вы проверяете, не определено ли значение или пустая строка, оба будут оцениваться как false, если вы делаете if(href) { ....

Я использую хром в окнах прямо сейчас, и ваш код, похоже, работает (конечно, это вызывает у меня ошибку 404, потому что у меня нет файлов).

Если это не помогло решить вашу проблему, попробуйте открыть инструменты разработчика Chrome и проверьте, есть ли в «Сети» запрос ajax.

Update: добавлены jsfiddle с пустой предупреждение о АЯКС успеха

+0

Я действительно не понимаю, что я удаляю почти все. Я просто предупреждаю («привет»); в функции успеха! Но он отображается на FF не на Chrome. –

+0

Я также удаляю предложение if и загружаю новейший jquery.1.7.2.min.js, но все еще не работает. Должно быть, я очень глупая ошибка новичка! : S –

+0

Я сделал jsfiddle с помощью ajax echo api, попробуйте. Вы видите сообщение об ошибке в консоли разработчика? – Chris

0

я, наконец, выяснить, что была глупая ошибка новичка! Код не имеет ничего плохого, работает хорошо. Проблема была, когда я тестировал его на месте:

файл: ///home/.../index.html (браузер бар навигации)

FF может найти путь ./es/uno.xml но (я знаю, почему) Chrome не может. Таким образом, он заменяет содержимое DIV ничем.

Он работает нормально, если я помещал файлы на сервере, чтобы получить доступ к нему в пути:

http://example.com

Спасибо всем!

Смежные вопросы