Я использую jQueryUI Auto-complete
на своем сайте вместе с window.history.pushState
, который изменяет URL-адрес браузера без обновления страницы. Он прекрасно работает на Chrome
и Mozilla
, но, к сожалению, не работает так, как я хотел, чтобы он работал на Internet Explorer 9
. Вот ситуация, используя jQueryUI Auto-complete
, я могу искать регионы, округа и почтовые индексы через тег <input />
на моей странице. Затем, если я нажму любой из предложенных результатов автозаполнения, используя window.history.pushState
, URL-адрес браузера изменится с www.example.com/sites
на www.example.com/sites/selected_region
без обновления страницы. Теперь, как я уже сказал, это работает на Chrome
и Mozilla
, но не работает на IE9
, потому что происходит следующее: когда я щелкаю любой из предложенных результатов jQueryUI Auto-complete
, он не меняет URL-адрес браузера и не закрывает список предложений. Он определенно не поддерживает window.histoty.pushState
. Поэтому я искал и нашел решение, которое могло бы работать с использованием history.js
. Я просто следовал инструкциям, чтобы загрузить его на свой сервер и включить файлы history.js
, но оказалось, что он конфликтует с другими используемыми файлами .js
. Как мне это исправить? Заранее спасибо.
PS: вот как я использую window.history.pushState
$( "#find" ).autocomplete({
minLength: 1,
source: function(request, response) {
var results = $.ui.autocomplete.filter(locations, request.term);
response(results.slice(0, 10));
},
focus: function( event, ui ) {
$( "#find" ).val( ui.item.value );
return false;
},
appendTo: "#results",
open: function(){
var position = $("#results").position(),
left = position.left, top = position.top;
$("#results > ul").css({left: (left + 15) + "px",
top: (top + 30) + "px", width: (206) + "px" });
},
select: function( event, ui ) {
$( "#find" ).val( ui.item.value );
$(":header.title").html(ui.item.value);
var base = '/stats/';
var url = base + ui.item.href;
var label_name = ui.item.value;
document.title = "Statistics for " + label_name + "| ASI";
window.history.pushState({"url":url}, document.title, url);
return false;
}
});
Пожалуйста, не стесняйтесь исправлять меня любым возможным способом. Ваше здоровье.
History.pushState()
вместоwindow.history.pushState()
, если вы используете плагин History.js - person Eru   schedule 19.09.2012History.pushState()
работает так же, какwindow.history.pushState()
? Или какое будет исправление, если я вернусь к тому, что я использовал ранее, просто используяwindow.history.pushState()
и исключив использованиеhistory.js
, какое будет мое исправление, чтобы оно работало наIE9
? - person Tsukimoto Mitsumasa   schedule 19.09.2012history.js
или аналогичный для его поддержки. Работает очень похоже. - person Eru   schedule 19.09.2012