HTML5功能網(wǎng)站建設(shè)發(fā)展
4.3檢測HTML5功能
了解移動(dòng)設(shè)備是驅(qū)動(dòng)HTML5發(fā)展的重要因素之后,可能會(huì)認(rèn)為“應(yīng)當(dāng)開始檢測Android、iOS及Opera Mobile瀏覽器了”。但如前面所提到的,檢測瀏覽器或設(shè)備盡管聽起來不錯(cuò),但只會(huì)讓人受到打擊。其中的問題在于許多瀏覽器都具有自我隱藏功能。例如:
>一些瀏覽器通過發(fā)送偽造的用戶代理(UserAgent)字符串偽裝成其他瀏覽器。
>隱私保護(hù)軟件會(huì)隱藏用戶代理字符串。
>即使用戶代理相同,瀏覽器的特性也可能會(huì)有區(qū)別。
因此,檢測HTML5特性才是正確的做法•檢測特性而不是檢測瀏覽器就無須更新檢測腳本了。
HTML5功能網(wǎng)站建設(shè)發(fā)展下面來冷靜思考一下。假設(shè)計(jì)劃在Web應(yīng)用程序屮使用地理定位功能(見第24章)——可以先列出一個(gè)包括所有知道的支持地理定位功能的瀏覽器列表,然后編寫或購買一個(gè)腳本來面向這些瀏覽器實(shí)現(xiàn)地理定位功能。并且每當(dāng)瀏覽器推出新版本,都需要更新腳本。但若直接檢測瀏覽器是否支持地理定位功能,那么應(yīng)用程序可以在任何支持地理定位功能的新瀏覽器中運(yùn)行。
以下是4種檢測HTML5功能的基本方法。
>在全局對(duì)象上檢測M性:
>在創(chuàng)建的元素I:檢測屬性:
>檢測一個(gè)方法(Method)能否得到正確的返回值;
>檢測能否保留元素值。
4.3.1利用全局元素檢測屬性
所有HTML5文杓都顯示在一個(gè)全局元素中。通常將它稱為navigator或window??梢灾苯釉谶@些全局屬性上創(chuàng)建一些HTML5屬性。在這種情況下.瀏覽器可以直接使用它們。
例如,檢測離線Web應(yīng)用程序的代碼如下。
if (window.applicationCache) {
document.write("Yes, your browser can use offline web
•applications.”;
} else {
document.write("No, your browser cannot use offline web
^applications.");
}
If your browser sees the applicationCache item, then it can use offline web applications.
如果瀏覽器支持applicationCache屬性(在示例代碼中會(huì)顯示相應(yīng)的提示文字),就說明可以正常使用離線Web應(yīng)用程序功能。