【问题标题】:javascript: want to resize window but also check if its open or closedjavascript:想要调整窗口大小,但还要检查它是打开还是关闭
【发布时间】:2010-06-27 09:28:10
【问题描述】:

为什么这不起作用?

//我删除了'for循环'一秒钟然后脚本做了一些事情,循环有什么问题?//

var openWindows= new Array[50]();

function resize(x){

//将布尔值更改为var var open = false;

 for(var i = 0; i < openWindows.length; i++){
  if(openWindows[i] == x){
   open = true;
   openWindows[i] = "";
  }
 }

 if(open == false){
  for(var i = 0; i < openWindows.length; i++){
   if(openWindows[i] == ""){
    openWindows[i] = x;
    break;
   }
  }

  var t = setTimeout("document.getElementById('" + x + "').style.height='200px'",20);
  var t = setTimeout("document.getElementById('" + x + "').style.height='220px'",40);
  var t = setTimeout("document.getElementById('" + x + "').style.height='240px'",60);
  var t = setTimeout("document.getElementById('" + x + "').style.height='260px'",80);
  var t = setTimeout("document.getElementById('" + x + "').style.height='280px'",100);
  var t = setTimeout("document.getElementById('" + x + "').style.height='300px'",120);
  var t = setTimeout("document.getElementById('" + x + "').style.height='320px'",140);
  var t = setTimeout("document.getElementById('" + x + "').style.height='340px'",160);
  var t = setTimeout("document.getElementById('" + x + "').style.height='360px'",180);
  var t = setTimeout("document.getElementById('" + x + "').style.height='380px'",200);
  var t = setTimeout("document.getElementById('" + x + "').style.height='400px'",220);
  var t = setTimeout("document.getElementById('" + x + "').style.height='420px'",240);
  var t = setTimeout("document.getElementById('" + x + "').style.height='440px'",260);
  var t = setTimeout("document.getElementById('" + x + "').style.height='460px'",280);
  var t = setTimeout("document.getElementById('" + x + "').style.height='480px'",300);
  var t = setTimeout("document.getElementById('" + x + "').style.height='500px'",320);
  var t = setTimeout("document.getElementById('" + x + "').style.height='520px'",340);
  var t = setTimeout("document.getElementById('" + x + "').style.height='540px'",360);
  var t = setTimeout("document.getElementById('" + x + "').style.height='560px'",380);
  var t = setTimeout("document.getElementById('" + x + "').style.height='580px'",400);
 }else{
  var t = setTimeout("document.getElementById('" + x + "').style.height='560px'",40);
  var t = setTimeout("document.getElementById('" + x + "').style.height='540px'",60);
  var t = setTimeout("document.getElementById('" + x + "').style.height='520px'",80);
  var t = setTimeout("document.getElementById('" + x + "').style.height='500px'",100);
  var t = setTimeout("document.getElementById('" + x + "').style.height='480px'",120);
  var t = setTimeout("document.getElementById('" + x + "').style.height='460px'",140);
  var t = setTimeout("document.getElementById('" + x + "').style.height='440px'",160);
  var t = setTimeout("document.getElementById('" + x + "').style.height='420px'",180);
  var t = setTimeout("document.getElementById('" + x + "').style.height='400px'",200);
  var t = setTimeout("document.getElementById('" + x + "').style.height='380px'",220);
  var t = setTimeout("document.getElementById('" + x + "').style.height='360px'",240);
  var t = setTimeout("document.getElementById('" + x + "').style.height='340px'",160);
  var t = setTimeout("document.getElementById('" + x + "').style.height='320px'",260);
  var t = setTimeout("document.getElementById('" + x + "').style.height='300px'",280);
  var t = setTimeout("document.getElementById('" + x + "').style.height='280px'",300);
  var t = setTimeout("document.getElementById('" + x + "').style.height='260px'",320);
  var t = setTimeout("document.getElementById('" + x + "').style.height='240px'",340);
  var t = setTimeout("document.getElementById('" + x + "').style.height='220px'",360);
  var t = setTimeout("document.getElementById('" + x + "').style.height='200px'",380);
  var t = setTimeout("document.getElementById('" + x + "').style.height='180px'",400);
 }
}

【问题讨论】:

  • 因为它很丑。 :) (抱歉主观负面评论)

标签: javascript resize window


【解决方案1】:

您的代码应该做什么还不是很清楚,但我可以看到一些问题。

第一行有语法错误:

var openWindows= new Array[50]();  // Should be `Array(50)`

Javascript是动态类型语言,声明变量时不需要断言类型:

 boolean open = false;

 // Should be
 var open = false;

对于每个变量声明,您应该只使用一次var 关键字。在这种情况下,每次声明 var t = window.setTimeout(...); 时,您都在重新声明变量。事实上,您根本不需要var t =

此外,您可以使用.closed 属性检查窗口是否已关闭:

if (windowVar.closed == true) { /* ... */ };

【讨论】:

  • 它不像一个窗口窗口。它更像是一个 div 充当一个窗口。将布尔值更改为 var,但脚本仍然不起作用:(
  • 我删除了“for循环”一秒钟,然后脚本做了一些事情,循环有什么问题?
  • @Jay,循环似乎没有任何语法错误。
  • 我现在看到了错误。我以错误的方式声明了数组:P var openstaan​​deVensters = new Array[100];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 2011-10-20
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多