javascriptブラウザを跨ぐ属性判断方法
785 ワード
今日はコードを書く時に間違えやすいところを見つけました.変数を宣言するとき、異なるbrowserによって異なるAPI定義があり、次のような書き方でどの属性が判断されますか?
ただし、javascriptの値が条件である場合の判断には注意してください.
たとえば:
しかし、screenLeftがちょうど0に待っている時は、12464;後の条件に入ります.続けてggです.
そのため、値の判断は正統であることをお勧めします.ハスOwnProptyまたはtypeofで判断した方が良いです.
var fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || document.fullscreenElement;
どれを使ってatributeを検査しますか?ただし、javascriptの値が条件である場合の判断には注意してください.
たとえば:
var sLeft = window.screenLeft || window.screenX; //firefox use screenX
console.log(sLeft);
このコードはscreenLeftがwindow.screenLeftを返送することができることを望んで、firefoxでwindow.screenXを返送します.しかし、screenLeftがちょうど0に待っている時は、12464;後の条件に入ります.続けてggです.
そのため、値の判断は正統であることをお勧めします.ハスOwnProptyまたはtypeofで判断した方が良いです.
var sLeft = window.screenLeft;
if( !window.hasOwnProperty('screenLeft')) sLeft = window.screenX;