JavaScript: хотите изменить размер окна, а также проверить, открыто ли оно или закрыто - PullRequest
1 голос
/ 27 июня 2010

почему это не работает?

// Я удалил цикл 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);
 }
}

1 Ответ

1 голос
/ 27 июня 2010

Не совсем понятно, что должен делать ваш код, но я вижу несколько проблем.

В первой строке есть синтаксическая ошибка:

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) { /* ... */ };
...