Avatar billede e.t. Nybegynder
02. april 2001 - 12:26 Der er 5 kommentarer

lukning af en vindue åbnet med javascript

Hey dudes ...

Jeg har et lille prob. har har åbnet et vindue med javascript, sådan her:

<a href=\"14_e_v3.html\" onClick=\'window.open(\"14_e_v3.html\",\"displayWindow\",\"toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=750,height=307\"); return false\' target=\"_new\">

Det virker helt fedt, men problemet er at det skal være muligt at hente en anden URL ind i \"displayWindow\", hvor width og height er ændret! Hvis jeg har en anden href ligesom ovenstående bare med en anden width og height, så tager den ikke højde for dem, da vinduet jo allerede blev defineret da det blev åbnet første gang.

Hvordan kommer jeg udenom dette problem ???

e.T.
Avatar billede jakoba Nybegynder
02. april 2001 - 12:37 #1
du kam istedet gøre det med:

frames.displayWindow.location = \"ny_url.html\";
frames.displayWindow.resizeTo( nyBredde, nyHojde );

men husk at checke om vinduet stadig er åbent :)
Avatar billede e.t. Nybegynder
02. april 2001 - 13:24 #2
Hi jakoba =)
forløbig tak for din assisstance !!!

Det bragte mig ½-vejs. Jeg har nu lavet en function i det vindue der popper op:

<script language=\'javascript\'>
function resize(){
    frames.resizeTo( 380, 550 );
    }

</script>

Og det virker som det skal, og nu skal jeg ikke være bange for at brugeren har lukket \"displayWindow\". Men nu ser jeg så et andet problem! De værdier jeg sætter Width og Height til er ydre koordinater! Jeg henter værdierne fra det billede framen skal indeholde. Det skal matche præcis! Jeg tænkte at jeg jo bare kunne lægge de pixels til som browserrammen fylder, men det er jo ikke konsekvent !!!
Nogle ideer til det ???
Avatar billede jakoba Nybegynder
02. april 2001 - 21:35 #3
Ja. Det kan faktisk gøres ret præcist. men ikke med resizeto for browserrammens tykkelse varierer en del med skærmopløsning og brugerindstillinger.
Så det bliver lidt mere komplext:

  var NS = (document.layers)?true:false;
  var ptBred = (NS)?window.innerWidth :document.body.clientWidth;
  var prHoj  = (NS)?window.innerHeight:document.body.clientHeight;
  frames.displayWindow.resizeBo( nyBredde-ptBred, nyHojde-ptHoj );

læg evt lidt til for margins ol. hvis det ikke er gjort allerede.

mvh JakobA
Avatar billede jakoba Nybegynder
02. april 2001 - 21:37 #4
Duh. funktionen hedder  resizeBy  ikke  resizeBo
  frames.displayWindow.resizeBy( nyBredde-ptBred, nyHojde-ptHoj );
Avatar billede e.t. Nybegynder
03. april 2001 - 10:03 #5
Hey Jakob
Endnu engang tak for hjælpen \")
Men jeg kan sku ikke helt få det til at virke (hehe, det kan sagtens skyldes min manglende forståelse for programmering) - men nu får du det lige som jeg har lavet det:

<!-- fra dokumentet hvor jeg åbner det nye vindue -->
<a href=\"11_a.html\" onClick=\'window.open(\"11_a.html\",\"displayWindow\",\"toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,width=381,height=550\"); return false\' target=\"_new\">

<!-- koden i 11_a.html -->

<html>
<head>
    <title>EMC - Evaluation</title>
<script language=\'javascript\'>
function resize(){
    var NS = (document.layers)?true:false;
    var ptBred     = (NS)?window.innerWidth :document.body.clientWidth;
    var ptHoj     = (NS)?window.innerHeight:document.body.clientHeight;
    frames.displayWindow.resizeBy( nyBredde-ptBred, nyHoejde-ptHoj );
    }

</script>
</head>

<body leftmargin=0 topmargin=0 marginhieght=0 marginwidth=0 bgcolor=\"Black\" onload=\"resize();\">
<img src=\"images/11_a.jpg\" width=\"381\" height=\"550\" border=\"0\" alt=\"\">
   
</body>
</html>

Er det mig der er helt galt på den ????

VH e.T.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester