2010-09-21 3 views
0

Этот код работает в firefox, но не в IE. Есть идеи? Я использую последние библиотеки jQuery-ui.jquery ui autocomplete - не работает в IE

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8" /> 
<title>jQuery UI Autocomplete Remote datasource demo</title> 
<link type="text/css" href="jquery.ui.all.css" rel="stylesheet" /> 
<script type="text/javascript" src="jquery-1.4.2.js"></script> 
<script type="text/javascript" src="jquery.ui.core.js"></script> 
<script type="text/javascript" src="jquery.ui.widget.js"></script> 
<script type="text/javascript" src="jquery.ui.position.js"></script> 
<script type="text/javascript" src="jquery.ui.autocomplete.js"></script> 
<link type="text/css" href="demos.css" rel="stylesheet" /> 
<style type="text/css"> 
.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif')  right center no-repeat; } 
.ui-autocomplete { 
    overflow-y: auto; 
    max-width: 400px; 
} 
/* IE 6 doesn't support max-width 
    * we use width instead, but this forces the menu to always be this wide 
    */ 
* html .ui-autocomplete { 
    width: 400px; 
} 
</style> 
<script type="text/javascript"> 

$(function() { 
function log(message) { 
    $("<div/>").text(message).prependTo("#log"); 
    $("#log").attr("scrollTop", 0); 
} 

$.ajax({ 
    url: "links2.xml", 
    dataType: "xml", 
    success: function(xmlResponse) { 
    var data = $("ROW", xmlResponse).map(function() { 
    return { 
     value: $("SC_DF_FIELD_1", this).text(), 
     url: $("SC_DF_FIELD_2", this).text(), 
     support_url: $("SC_DF_FIELD_3", this).text(), 
     description: $("SC_DF_FIELD_4", this).text(), 
     contact: $("SC_DF_PERSON_LINK", this).text() 

    }; 
    }).get(); 

    $("#_results").autocomplete({ 
    source: data, 
    minLength: 0 

    }).data("autocomplete")._renderItem = function(ul, item) { 
    return $("<li></li>") 
    .data("item.autocomplete", item) 
    .append("<a>" + item.value + "<br>" + item.url + "<br>" + item.description + "<br>" + "Support URL: " + item.support_url + "<br>" + "Contact: " + "<a href=" + item.contact + ">Test</a>" + "<br />" + "</a>") 
    .appendTo(ul); 
} 

    } 
}) 

}); 
</script> 

Поиск:

ответ

0

код работает для меня в IE. Единственное различие, которое я вижу, что я использую версию googleapis из JQuery и jqueryui:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js"></script> 

Единственным возможным отличием является разметки, так как вы не отправлял ваши. Я просто вход так:

<input type="text" id="_results" /> 
+0

В chrome я вижу, что я получаю сообщение об ошибке «Происхождение null не допускается ошибкой Access-Control-Allow-Origin». Изменение моего источника на googleapi не исправляет его в IE или chrome. Я все еще получаю ту же ошибку в хроме. – specked

+0

Я тоже использую тот же ввод – specked

+0

Это странно. Эта ошибка звучит как кросс-доменная ошибка ajax. Но я не знаю, почему это сработало бы в FF, если бы это была проблема. Является ли файл links2.xml в том же домене, что и ваша страница, которая делает ajax? – fehays

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