0

我的网站不适用于小于 10" 的显示器。如何确定屏幕尺寸以阻止访问分辨率低于 10" 的网站?谢谢。

4

5 回答 5

5

计算机可以并且必须知道它正在显示的分辨率(以像素为单位)。然后,此分辨率的图像通过电缆发送到另一个物理显示它的设备。这可能是一个微小的 LCD 屏幕或一个巨大的投影仪。无论哪种方式,物理屏幕/显示尺寸完全独立于屏幕分辨率。计算机不知道输出的最终物理大小,尤其是 Javascript/CSS。

换句话说:您无法检测到“10 英寸”。

于 2012-07-20T11:26:44.810 回答
1

创建一个.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";
}

如果设备不知道一英寸实际上有多大(很多人不知道),那么您就不走运了。

于 2012-07-20T22:55:39.963 回答
1

您无法检测到用户的屏幕尺寸。您唯一可用的(并且很容易被欺骗)是以像素为单位的显示分辨率。

要仅在您的内容超过 XYZ px 空间时应用样式表,我建议使用width媒体查询

于 2012-07-20T11:27:46.837 回答
1

您可以使用 CSS 媒体查询来做到这一点,隐藏您网站的所有内容并向被阻止的人显示消息。

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

尽管向这些人展示一些有用的东西而不是把他们都屏蔽起来是有意义的。

于 2012-07-20T11:28:03.493 回答
-1

用于检查分辨率。

在 JavaScript 中:

if(screen.height < 600 || screen.width < 800)
{
    // Do something to block. i.e. redirect to specific page
}
于 2012-07-20T11:25:13.183 回答