2012-07-20 70 views
0

我的網站不適用於小於10英寸的顯示器「我如何確定屏幕的大小以便在分辨率低於10」時阻止訪問網站?謝謝。如何阻止某個屏幕大小的網站?

+0

爲什麼10英寸?你的網站做什麼? – deceze 2012-07-20 11:23:14

+2

10「不是一個分辨率,它只是一個屏幕的大小 – 2012-07-20 11:23:44

+0

我認爲你只能檢測瀏覽器的窗口大小和屏幕分辨率 – 2012-07-20 11:24:50

回答

1

您無法檢測到用戶的屏幕大小。唯一可能對您可用的(並且可以很容易被欺騙)是以像素爲單位的顯示分辨率。

要僅在您的內容的XYZ px空間超過XYZ空間時應用樣式表,我推薦使用width media queries

-1

用於檢查分辨率。

在javascript中:

if(screen.height < 600 || screen.width < 800) 
{ 
    // Do something to block. i.e. redirect to specific page 
} 
5

計算機可以和必須知道的分辨率(像素),它是顯示。然後將此分辨率中的圖像通過電纜發送到另一個實際顯示它的設備。這可能是一個很小的LCD屏幕或一個巨大的投影儀。無論哪種方式,物理屏幕/顯示大小完全獨立於屏幕分辨率。輸出的最終物理尺寸是未知的計算機,尤其是Javascript/CSS。

換句話說:你無法檢測到「10英寸」。

1

你可以用CSS Media Queries來做到這一點,隱藏你的網站的所有內容,並顯示一條消息給被阻止的人。

@media only screen 
and (max-width : YOURWIDTHpx) { 
/* Styles */ 
YOUR MESSAGE CONTAINER 
} 

雖然只顯示對這些人有用的東西而不是將它們全部阻擋在一起是有意義的。

0

用英寸定義的.style.width創建一個元素,然後測量它是.width(以像素爲單位)來計算出屏幕的DPI。然後,只需使用the screen object即可根據需要計算屏幕的對角線尺寸並阻止用戶。

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"; 
} 

如果設備不知道有多大英寸實際上是(而且很多都沒有),你的運氣了。