2012-05-18 611 views
1

我正在使用jquery瀏覽器檢測功能來提醒不同的瀏覽器上的不同值,但似乎它與safari和chrome衝突。他們都警覺相同的價值。 這個功能在所有的瀏覽器中都能正常工作,但safari和chrome只有問題。提前致謝。瀏覽器檢測jQuery的?

<script type="text/javascript"> 

$(function(){ 

    var m= $.browser; 


    if(m.webkit) { 

     alert('chorme') 

     } 


    else if(m.safari) { 

     alert('safari') 

     } 

    else {alert('bye bye')} 


    }) 



</script> 
+0

Safari是depricated – thecodeparadox

+0

所以針鋒相對 – Carlos

+0

無解我覺得敦促引用文檔時,他們說,「我們不推薦使用此屬性;請嘗試使用功能檢測,而不是...「 – Sampson

回答

4

Safari和Chrome使用相同的渲染引擎,WebKit的。首先查找Safari,然後查找其他Webkit瀏覽器。在現實的情況下真的沒有理由區分這兩者。他們幾乎在每種情況下都會呈現幾乎相同的網頁。

如果你需要將它們分開,但是,試試這個:

$.browser.safari &= !/chrome/.test(navigator.userAgent.toLowerCase()); 

if (m.safari) { 
    alert('safari') 
} else if (m.webkit) { 
    alert('chorme') 
} 
+0

不工作從這種方式。我有檢查 – Carlos

+0

現在應該工作。 – Blender

+0

我現在沒有在我的Mac上測試它,但現在它確實很好。 –

0

你可以試試這個代碼:

$.browser 

給出了相同的結果爲Safari瀏覽器和WebKit

Check the doc for $.browser

所以,你可以嘗試here您的解決方案,而不是jQuery的

+0

如何使用這種方法可以請給我發送一些例子 – Carlos

+0

@amit你可以嘗試我的代碼,首先檢查控制檯輸出 –

+0

@thecodeparadox事情是,米.webkit對Chrome和safari都有效,所以這不起作用。此外,導航器屬性不可靠,因爲您可以看到在Chrome中進行測試,例如appCodeName返回Mozilla。所有屬性可以測試[這裏](http://www.w3schools.com/js/tryit.asp?filename=try_nav_all) –