尝试通过html显示监视器宽高比

时间:2014-01-08 17:43:34

标签: javascript html web

<SCRIPT language="JavaScript">

    height = screen.height;
    width = screen.width;
    aspect = width/height;

    if (width==1920)(height==1200)
    {
       x="16:10";
    }
    else if (width==1680)(height==1200)
    {
       x="16:9";
    }
    else
    {
       x="unknown";
    }

    document.write( x );

</SCRIPT>

这是我的确切代码。我今天早上刚开始使用javascript。它目前没有显示任何内容。

4 个答案:

答案 0 :(得分:1)

这不是正确的语法:

if (width==1920)(height==1200)

使用&&(和)运算符来判断两个条件是否均为真:

if (width==1920 && height==1200)

P.S。对于生成x字符串的更通用的解决方案,将宽度和高度视为分数的分子和分母,并通过除以公共素数来简化分数。

答案 1 :(得分:1)

首先你正在使用如果错误:

if (width==1920)(height==1200)

语法无效,如果您愿意和两个或多个条件一起使用&&运算符:

if (width==1920 && height==1200)

其次,此示例仅对两个已知分辨率“有效”,建议您检查aspect变量而不是heightwidth。这是一个可扩展的例子:

var ratios = [
   {name: "16x10", a: 16/10},
   {name: "16x9", a: 16/9},
   {name: "4x3", a: 4/3}
   // etc...
]

var aspect = screen.width/screen.height;
var aspectName = "Unknown";

for(var i = 0; i < ratios.length; i++)
{
  var ratio = ratios[i];
  if (aspect == ratio.a) { 
    aspectName = ratio.name;
    break;
  }
}

document.write(aspectName);

答案 2 :(得分:1)

LIVE DEMO

function ar() {
  // Greatest Common Divisor algorithm loop:
  function gcd(x,y){return !y?x:gcd(y,x%y);} 
  var s=screen, w=s.width, h=s.height, r=gcd(w,h);
  return w/r+':'+h/r; // Return the Aspect-Ratio String
}

document.body.innerHTML = ar();

https://en.wikipedia.org/wiki/Euclidean_algorithm

答案 3 :(得分:0)

您的代码中有一些不正确的内容。

  1. HTML标记必须以小写
  2. 编写
  3. 不是language="JavaScript"而是type="text/javascript"(如果您正在构建HTML5网站,则可以避免此声明)
  4. 正如其他人所说,如果你想要同时实现两个条件,你必须写width == 1920 && height = 1200
  5. 在声明变量时,在名称var height = screen.height;之前使用“var”在创建变量时只需要它,使用它只需调用height。不使用“var”将创建一个全局变量,但这是另一课,只记得最好这样做。
  6. 如果您使用的是Chrome,请右键单击该文档然后“检查”。检查员会弹出。这个工具非常强大,可能看起来很复杂但只是阅读“控制台”选项卡中的内容。您最终会知道在x行等处的语法有错误。(几乎所有浏览器都可以使用该控制台,但我真的不知道它们在除Chrome之外的其他工作方式)。