5

Tôi đang gặp một số vấn đề liên quan đến sự kiện hashchange trong Internet Explorer 7. Tất cả các phiên bản khác của Internet Explorer - nghĩa là. 8 & 9 không hoạt động.sự kiện hashchange ràng buộc trong vấn đề IE7

Mã của tôi là:

$(window).bind('hashchange', function (e) { alert('hash changed'); }); 

Khi các hash của những thay đổi url trong Firefox, IE8, IE9 tôi nhận được hộp cảnh báo, nhưng trong IE7, không có gì xảy ra.

Bất kỳ ai cũng trải nghiệm điều này trước đây?

+7

Internet Explorer không phải là trình duyệt hợp lệ ... – genesis

Trả lời

8

Chắc chắn IE6 và IE7 không hỗ trợ nguyên bản. Bạn đã thử sử dụng kịch bản BBQ jquery của Ben Alman để sửa lỗi này?

+2

IE8 là trình duyệt IE đầu tiên hỗ trợ nguyên bản. Tuy nhiên, hãy coi chừng rằng IE8 ở Chế độ tương thích (ví dụ, hoạt động như IE7) sẽ yêu cầu hỗ trợ nó, nhưng nó không, như Ben Alman chỉ ra: http://benalman.com/projects/jquery-hashchange-plugin/ –

0

[Sao chép câu trả lời này từ jQuery - hashchange event]

Tôi chỉ chạy vào cùng một vấn đề (thiếu sự kiện hashchange trong IE7). Một giải pháp thích hợp cho mục đích của tôi là ràng buộc sự kiện nhấp chuột của các liên kết thay đổi băm.

<a class='hash-changer' href='#foo'>Foo</a> 

<script type='text/javascript'> 

if (("onhashchange" in window) && !($.browser.msie)) { 

    //modern browsers 
    $(window).bind('hashchange', function() { 
     var hash = window.location.hash.replace(/^#/,''); 
     //do whatever you need with the hash 
    }); 

} else { 

    //IE and browsers that don't support hashchange 
    $('a.hash-changer').bind('click', function() { 
     var hash = $(this).attr('href').replace(/^#/,''); 
     //do whatever you need with the hash 
    }); 

} 

</script> 
+1

chỉ muốn chỉ ra rằng $ .browser không hoạt động nữa kể từ jQuery phiên bản 1.9 vì nó không được chấp nhận nữa. http://api.jquery.com/jQuery.browser/ – Rumplin

+0

cũng điều này sẽ không hỗ trợ nút quay lại của trình duyệt ... – 0m4r

Các vấn đề liên quan