OK、このスクリプトは、cssメディアクエリーを使用してメディアタイプをチェックします。アイデアは、私がdiv(プレDOM)とスタイル要素をメディアクエリで作成し、スタイルが適用されている場合、メディアクエリが真であるということです。これは、Firefox 5で動作しますが、IE 9メディアクエリーに関するIEの問題
/** Detect Browser Media **/
if(!window.mediaQuery){
window.mediaQuery = function(query){
var boolean = 0;
style = document.createElement('style');
style.media = query;
style.innerHTML = '#mediaQuery{width:5px;}';
document.head.appendChild(style);
div = document.createElement('div');
div.id = 'mediaQuery';
document.documentElement.appendChild(div);
if(div.offsetWidth == 5){boolean = 1;}
console.log(div.offsetWidth," ",boolean);
return { match:boolean };
}
}
にこれはFF 5でとChromeのコンソールで「5 1」を返しますが、それはIEがここでやっている何をIE 9で「919 0」を返していませんか?どうすれば回避できますか? mediaQuery(「スクリーンと(最小幅:480PX)」)ここ
は、関数呼び出しの一例である。私は幅が画面幅の100%一致することを発見したいくつかのテスト後
と一致します。 IEでメディアクエリが動作しないのはなぜですか?FFとChromeで動作します... javascriptの幅をテストする前にIEがCSSを処理していないことがありますか?
かわりに、私は高さに変更し、高さを確認するためにouterHeightまたはプロパティのいずれかの変化を確認した場合、それは903 0 – matt
に変わりdiv要素のbodyタグを追加する場合(getClientRects、getBoundingClientRect、offsetHeight)は0を返します。 – matt