私のサイトは10"未満のディスプレイでは利用できません。10"未満の解像度でサイトへのアクセスをブロックする画面のサイズを決定するにはどうすればよいですか?ありがとう。
5 に答える
コンピューターは、表示している解像度(ピクセル単位)を知ることができ、知る必要があります。この解像度の画像は、ケーブルを介して、物理的に表示する別のデバイスに送信されます。これは、小さなLCDスクリーンまたは巨大なプロジェクターである可能性があります。いずれにせよ、物理的な画面/ディスプレイのサイズは画面の解像度に完全に依存しません。出力の最終的な物理サイズは、コンピューター、特にJavascript/CSSでは不明です。
つまり、「10インチ」は検出できません。
CSSメディアクエリを使用してこれを実行し、サイトのすべてのコンテンツを非表示にして、ブロックされたユーザーにメッセージを表示することができます。
@media only screen
and (max-width : YOURWIDTHpx) {
/* Styles */
YOUR MESSAGE CONTAINER
}
これらの人々を一緒にブロックするのではなく、単にこれらの人々に役立つ何かを示すことは理にかなっていますが。
ユーザーの画面サイズを検出できません。利用できる可能性がある(そして簡単になりすましできる)唯一のものは、ピクセル単位の表示解像度です。
コンテンツにXYZピクセル以上のスペースがある場合にのみスタイルシートを適用するには、width
メディアクエリの使用をお勧めします。
.style.width
インチで定義された要素を作成し、それ.width
を(ピクセルで)測定して画面のDPIを計算します。次に、screen
オブジェクトを使用して画面の対角サイズを把握し、ユーザーをブロックする必要があります。
var el = document.createElement("div");
el.style.width = "100in";
document.body.appendChild(el);
var dpi = el.clientWidth / 100;
var screenSizeIn = Math.sqrt(screen.width * screen.width +
screen.height * screen.height) / dpi;
console.log("Screen size is " + screenSizeIn + " inches.");
document.body.removeChild(el);
if (screenSizeIn < 10) {
window.location = "/blocked.html";
}
デバイスが実際に1インチの大きさを認識していない場合(そして多くの場合は認識していない場合)、運が悪いことになります。
解像度を確認します。
javascriptの場合:
if(screen.height < 600 || screen.width < 800)
{
// Do something to block. i.e. redirect to specific page
}