2014-10-02 1 views
0

프로그래밍 할당을 위해 사용자에게 두 개의 매개 변수 인 positionX와 positionY를 묻는 메시지를 표시하여 새 창을 열 때마다 새 창이 (x, y) 위치로 팝업되도록합니다. 지금까지 몇 가지 옵션을 시도했지만 내가 뭘 잘못하고 있는지 알아낼 수 없습니다. JavaScript에 익숙하지 않아서 제 구문이 될 수 있습니다.window.open 또는 window.moveto에서 사용하기 위해 javascript에서 창 위치를 묻는 방법?

내 선생님이 그 위치가 정확하지 않다고했습니다.

내 코드 :

<html> 
    <head> 
     <script type ="text/javascript"> 
      function openVenster(){ 

       //vraag de breedte van het venster op 
       var breedte = prompt("Geef de horizontale lengte van het nieuwe venster op (minimaal 100 pixels): ", 100); 
       //vraag de hoogte van het venster op 
       var hoogte = prompt("Geef de verticale lengte van het nieuwe venster op: (minimaal 100 pixels): ", 100); 
       //vraag de x,y posities op waarop het venster moet verschijnen 
       var positieX = prompt("Geef de positie ten opzichte van links op in pixels: ", 10); 
       var positieY = prompt("Geef de positie ten opzichte van de bovenkant op in pixels: ", 10); 

       //open het venster en gebruik ingevoerde posities 
       mijnVenster = window.open("http://google.nl","mijnVenster","width=breedte,height=hoogte,scrollbars=no,status=no"); 
       mijnVenster.moveTo(positieX,positieY); 
      } 

      function sluitVenster(){ 

       //sluit het venster 
       mijnVenster.close(); 
      } 

     </script> 
    </head> 
    <body> 
     <h1>Een JavaScript om een venster te openen en te sluiten</h3> 
     <!-- 
     //weergeef de knoppen 
     --> 
     <button onclick="openVenster()">Nieuw venster</button> 
     <button onclick="sluitVenster()">Sluit venster</button> 
    </body> 
</html> 
+0

코드와 함께 [FIDDLE] (http://jsfiddle.net/uvt8w0xt/1/)을 설정했습니다. 제대로 작동합니다. –

+1

은 ""width = "+ breedte +", height = "+ hoogte"여야합니까? – Hacketo

답변

0

내가 실수를 찾을 수 없습니다하지만 어쩌면 선생님이 원하는 :

mijnVenster.moveTo(positieX + 10, positieY + 10); 

편집 귀하의 추가 질문에 따르면

mijnVenster = window.open("http://google.nl","mijnVenster","left="+positieX+",top="+positieY+",width="+breedte+",height="+hoogte+",scrollbars=no,status=no"); 
: 예, 그것은 개방 내에서 수행 할 수 있습니다

변수를 문자열로 전달할 때는 다음과 같이해야합니다.

var myVar = 30, str = "A string will get here: my variable"; 
var newStr = "A string will get here:" + myVar + " my variable"; 

FIDDLE here으로 업데이트되었습니다. mijnVenster.moveTo()이 제거되었습니다.

+0

참조 window.open 메서드/window.moveTo 메서드를 사용하여 새 Window를 여는 것은 할당되어 있지 않습니다. 사용자는 생성시 크기 (너비, 높이)와 위치 (왼쪽, 위)를 채워야합니다. – user3111770

+0

@ user3111770 제 EDIT를 참조하십시오. –

+0

내 버튼이 더 이상 반응하지 않으면 스크립트가 중단 된 것처럼 보입니다. 그러나 나는 당신이 가고있는 곳을보고 있습니다. 변수를 벗어나려고 노력하겠습니다. – user3111770

0

당신은 당신이 그것을 이동하기 전에 로딩을 완료 창을 기다릴 필요가있다.

mijnVenster = window.open("http://google.nl","mijnVenster","width=" + breedte + ",height=" + hoogte + ",scrollbars=no,status=no"); 
      mijnVenster.onload = function(){mijnVenster.moveTo(positieX,positieY);}; 
+0

시도했지만 테스트 할 때 여전히 올바르게 작동하지 않습니다. 예를 들어 positionX = 0을 지정하면 positionY = 0 => 창이 왼쪽 상단에 나타납니다. 다시 한번 positionX = 50, positionY = 50 => 창이 왼쪽 상단 모서리에 나타나는 창을 만듭니다. – user3111770

+0

코드를 테스트 할 때 새 창 너비와 높이가 모니터 해상도보다 큽니다. 내 대답에서 볼 수 있듯이, 나는 너비와 높이를 5로 하드 코딩했으며 정확하게 나를 배치했습니다. – Zze

+0

생성 된 창의 크기에는 문제가 없었지만 팝업 창 위치는 문제가되지 않았습니다. – user3111770

관련 문제