İstemcide yönlendirme yapan sayfa var, API API kullanarak kullanıyorum. & push/popstate. Hangi tüm modern tarayıcılarda gayet iyi çalışıyor. (arama motorları node.js tarafından desteklenecektir)IE hashchange gerçekleştiğinde popstate çalıştırmıyor IE
Ancak IE, IE11 de dahil olmak üzere, URL'ler ile pushstate çalışır iken IE son zamanlarda, hashchange üzerinde popstate ateş etmez sorun içine çarptı. o akımını değişiyor Örneğin
doğru ateşler$(document).on('click', 'a', function(e) {
e.preventDefault();
History.pushState({}, '', $(this).attr('href'));
});
... ...
$(window).on('popstate', function() {
console.log('url changed');
});
W3C spec göre ... aynen böyle hashchange popstate kovmalıyım Tarihçe. Bununla birlikte, hash bağlantılarını (<a href="#hashchange">...
) eklediğimde, IE'de tıklandığında hiçbir şey patlamaz. :/
IE algılamasını yapmak istemem (özellik olarak aynı algılama dolabına girebilecek pek çok tarayıcı var), özellik algılama özelliğini kullanmak yerine. Ancak, tarih olarak (popstate/pushstate) gayet bile eksik itme/popstate meseleyi algılayamaz geri kalan yolu ...
if(!window.history || !window.history.pushState) { ...
çalışır ... ve bunun yerine hashchange kullanın. :/
Herhangi bir düşünce?
PS. Bir bonus olarak, hashtag url ile jquery.history.js (history.js'nin jquery sarılmış sürümü) kullanılarak her şey biter.
http://localhost/routetest/index.html#/page1/1234
http://localhost/page1/1234
olur ... ??? :/
? IE 9 için pushState() ile ilgili bir sorun var gibi görünüyor. Bu soruya verilen yanıtla bakın: http: // stackoverflow.com/questions/3722815/does-internet-explorer-support-pushstate-ve-replacestate – urbz
Ah, özür dilerim. IE11. Sadece modern tarayıcılardan bahsetti ama IE sürümünde başarısız oldu :) – crappish