2012-01-14 44 views
3

此函数禁用链接的默认操作,并使用pushState函数更改URL。我需要能够检测浏览器是否不支持此功能,以便我可以停止preventDefault()函数。如何检测pushState功能的浏览器不兼容

$("a").click(function(event) {  

      var url = ""; 
      var url = $(this).attr('href'); 

     // Disable Default Action and Change the URL - 
     event.preventDefault();  
     window.history.pushState("somedata", "Title", url); 

     //Call Function to change the content - 
     loadContent(url); 
    }); 

任何建议是不胜感激

回答

7

使用特征检测:

if (history.pushState) { 
    // supported. 
} 

实施例:

$("a").click(function(event) {  
    var url = ""; 
    var url = $(this).attr('href'); 

    if (history.pushState) { 
     window.history.pushState("somedata", "Title", url); 
     event.preventDefault(); 
    } 

    //Call Function to change the content - 
    loadContent(url); 
}); 
+1

哇,简单?非常感谢 – TaylorMac 2012-01-14 21:47:40

+0

它会让我接受 – TaylorMac 2012-01-14 21:47:47