隨著前端技術的快速發展,JS的重要性也越來越受到了大家的重視,而JS創建的動態網頁能否在不同瀏覽器和設備上正常顯示與內核密不可分。
對于不同瀏覽器內核的理解是我們在學習JS時需要具備的知識。例如IE瀏覽器就是Trident內核,而Firefox瀏覽器使用的是Gecko內核,Safari瀏覽器是使用WebKit內核。瀏覽器內核是指瀏覽器中解析HTML/CSS/Javascript的引擎,也是JS將文本字符串解析為對應的程序代碼的主要環境。由于不同的瀏覽器使用不同的內核解析網頁,因此JS在不同內核中的表現也是不同的。
//示例:動態改變瀏覽器網頁title var title = document.title; document.title = "New Title"; //以上代碼在不同內核的瀏覽器中表現不確定
在JS應用程序的開發過程中,我們需要考慮內核之間的兼容性問題。以CSS樣式為例,在不同內核下瀏覽器有些樣式是共通的,有些樣式則是各自獨立的,如IE瀏覽器下容易遺漏float屬性的clear屬性,而其他內核的瀏覽器則是不會遺漏這個屬性的,因此為了避免這種問題,我們需要規范遵循一定的兼容性標準。
//示例:頁面初始化部分css屬性設置 <style> body { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } </style>
同時,當我們在開發JS程序時,也需要考慮內核與JS之間的交互。在不同內核下,各種JS方法會有一些細微的差別,例如比較常見的文件上傳功能,在使用IE內核的情況下需要使用ActiveXObject對象進行模擬,而在使用其他內核的瀏覽器則是直接使用原生JS操作即可。
//示例:判斷文件類型的函數 //在使用IE內核的瀏覽器下需要使用ActiveXObject進行模擬 function file_type(file) { var IEVer = getInternetExplorerVersion(); if (!!document.all && !!IEVer !== "undefined" && IEVer <= 9) { var fso = new ActiveXObject ( "Scripting.FileSystemObject"); var n = fso.GetExtensionName(file.name).toLowerCase(); } else { var n = file.name.split(/\./).pop().toLowerCase(); } return n; }
總之,在JS開發過程中,了解不同內核之間的關系是非常重要的,同時在遵循一定的兼容性標準的前提下編寫穩定、高效的JS代碼對提升程序質量和用戶體驗是極其必要的。
上一篇jquery里打印數據
下一篇jquery里的下載圖標