2012-07-20 21 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"; 
} 

如果设备不知道有多大英寸实际上是(而且很多都没有),你的运气了。