2013-01-21 34 views
2

我需要確保我的代碼在所有瀏覽器html或html5中都能正常工作。 我在Firefox和Chrome中的代碼工作正常,但在IE中我有問題。我想修復它們...使用javascript檢測HTML5

如果客戶端支持HTML5和這組代碼。如果沒有,請做其他事情。

有什麼建議嗎?

+12

http://modernizr.com/ – salexch

+1

你能證明你的一些代碼?我們將能夠識別在某些瀏覽器中會遇到的問題。 – scunliffe

+0

@scunliffe,例如全屏api。多數民衆贊成在IE瀏覽器不工作,我想做一些事情,並確保它不是HTML5,thx快速回答。 – Saeid

回答

5

有一個名爲Modernizr的功能檢測庫可以提供幫助。

下面是從他們的文檔的例子:

Modernizr.load({ 
    test: Modernizr.geolocation, 
    yep : 'geo.js', 
    nope: 'geo-polyfill.js' 
}); 

yep條件是,如果地理位置可用加載腳本。 nope條件是要加載的腳本,如果它不可用 - 將包含替代/填充。

你想測試你想要使用的確切的東西,而不是HTML5是否被支持。這是因爲HTML5可能會受到瀏覽器的部分支持 - 但也因爲許多功能實際上不是HTML5,而是一個單獨的規範。 (地理位置不是HTML5規範的一部分)。

+0

有幫助,生病嘗試。 – Saeid

-1

親愛的這是簡單的功能。您可以檢測瀏覽器是否支持html5或不支持任何庫。

<script> 
var test_canvas = document.createElement("canvas") //try and create sample canvas element 
var canvascheck=(test_canvas.getContext)? true : false //check if object supports getContext() method, a method of the canvas element 
if(canvascheck == true) 
{ 
    alert("This browser support html5"); 
} 
else{ 

    alert("This browser does not support html5"); 
} 
</script> 
+0

支持canvas!==支持HTML5。 – Fenton

+0

您應該檢測您要使用的功能,而不是將您的檢測基於不同的功能。另外,HTML5的「主要」元素實際上是「

」,目前只支持最新版本的Opera和Chrome。是的,那是舌頭上的舌頭(但事實上是正確的)。 – Fenton

1

在使用Internet Explorer進行實施時,存在html5問題。你將面臨的大部分問題都來自css3。要處理這個問題,你可以手動改變CSS,或者包含一個類似於HTML5的Shiv。 這是您需要包含的網址。

<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 

$("body").append(innerShiv("<section></section>")); 

上面說的鏈接都還不錯