Avatar billede rynke10 Novice
03. januar 2006 - 11:28 Der er 16 kommentarer og
2 løsninger

Åbning af vindue i forgrunden

Jeg åbner et nyt vindue med target="new" og det fungerer egentlig også meget godt. Første gang jeg klikker, åbner det nye vindue, klikker jeg et andet link som også skal åbne i "new", så åbner det også, men det sker i baggrunden. Altså vinduet er ikke synligt. Jeg vil gerne med mit link, åbne det nye vindue og hvergang jeg åbner det, have det i forgrunden. Så vil jeg i det nye vindue have et link, så jeg bare kommer tilbage til det første vindue, altså bare at det får focus.
Skal jeg virkelig i javascript for at lave det?

Et andet problem er hvor jeg åbner et nyt vindue for at vise et billed, jeg bruger følgende:
<a href="#" onClick="window.open('img/husbaad.jpg','vindue','width=600, height=400');">husbåde</a>
Problemet er "#", for når jeg åbner vinduet, så går mit oprindelig vindue til toppen. Er jeg midt på en side, vil jeg blive der og bare åbne det nye vindue.
Avatar billede amews_aj Nybegynder
03. januar 2006 - 12:04 #1
Prøv: target="_blank"

Og det andet: <a href="#" onClick="window.open('img/husbaad.jpg','vindue','width=600, height=400'); return false;">husbåde</a>
Avatar billede rynke10 Novice
03. januar 2006 - 12:16 #2
Så vil den åbne et nyt vindue hver gang. Jeg vil have det sådan, at klikker jeg 3 gange, så har jeg stadig kun et ekstra vindue åbent.

Det sidste fik jeg forsøgt mig frem til en løsning af, istedet for href="#" skrev jeg href="#1". Jeg har i forvejen et anker i toppen der hedder toppen, det kunne den åbenbart finde.
Avatar billede roenving Novice
03. januar 2006 - 12:31 #3
-- du skal absolut benytte return false; da siden ellers reloades, og det er der jo ingen grund til !-)

-- og det andet kan du ikke uden javascript, men olebole viste for nogle år siden en lille smart funktion:

<script type="text/javascript">
var newWin = {'closed':true};
function openWin(url){
  if(!newWin.closed)
    newWin.close();
  newWin = window.open(url,'newWin');
  newWin.focus();
}
</script>

-- som du så kalder, f.eks. med:

<a href=" ... " onclick="openWin(this.href);return false;">Åbn i nyt vindue</a>
Avatar billede rynke10 Novice
03. januar 2006 - 13:51 #4
Nu er jeg da blevet lidt klogere. Det er en fin funktion og jeg får nu vist mit opdaterede vindue i forgrunden hver gang. Nu kan jeg så bare ikke ændre størrelsen, så skal funktionen vel skrives om til også at indeholde størrelsen af vinduet.
Avatar billede roenving Novice
03. januar 2006 - 13:54 #5
Ja !-)

-- og hvis størrelserne skal variere, kan du f.eks.

var newWin = {'closed':true};
function openWin(url,bredde,hojde){
  if(!newWin.closed)
    newWin.close();
  var l = (screen.availWidth-bredde)/2;
  var t = (screen.availHeight-hojde)/2;
  newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l);
}
Avatar billede roenving Novice
03. januar 2006 - 13:55 #6
-- og måske skulle man for en god ordens skyld medtage linjen:

  newWin.focus(); !o]
Avatar billede rynke10 Novice
03. januar 2006 - 14:03 #7
Så tror jeg den er der. Jeg laver det nok en smule anderledes, jeg vil enten åbne et nyt vindue i fuld størrelse, eller en nyt i en fast størrelse. Hvis jeg laver 2 funktioner, en der måske hedder openWinFull og er som den første og en openWinSmall der åbner et nyt vindue i f.ex. 600x400.
Smid et svar, så takker jeg for hjælpen
Avatar billede roenving Novice
03. januar 2006 - 14:10 #8
Velbekomme '-)

-- og pc-help havde jo også et godt bud ud fra de informationer, der forelå på det tidspunkt !-)
Avatar billede rynke10 Novice
03. januar 2006 - 14:13 #9
Så fordeler jeg da også lidt til ham, hvis han smider et svar :-)
Avatar billede amews_aj Nybegynder
03. januar 2006 - 16:12 #10
det kommer her...
Avatar billede roenving Novice
03. januar 2006 - 16:19 #11
-- og så kan du i øvrigt sagtens bruge den samme funktion til begge dele:

var newWin = {'closed':true};
function openWin(url,bredde,hojde){
  if(!newWin.closed)
    newWin.close();
  if(openWin.arguments.length == 3){
    var l = (screen.availWidth-bredde)/2;
    var t = (screen.availHeight-hojde)/2;
  }else{
    var l = t = 0;
    var bredde = screen.availWidth;
    var hojde = screen.availHeight;
  }
  newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l);
  newWin.focus();
}

-- hvis du så kalder med angivne størrelser, vil den åbne i den størrelse, kalder du uden størrelser, vil den åbne et vindue i fuld størrelse !-)
Avatar billede roenving Novice
03. januar 2006 - 16:29 #12
-- og tak for point ;~}
Avatar billede amews_aj Nybegynder
03. januar 2006 - 16:31 #13
-- ja tak for point :)
Avatar billede rynke10 Novice
03. januar 2006 - 16:32 #14
Det tænkte jeg også lidt på, men jeg vil bare have et standard vindue, alle billeder der skal vises er lige store. Så slipper jeg for at angive størrelsen i hvert eneste link, men kun én gang i scriptet.

De gange hvor jeg vil åbne et fuldt vindue, skal jeg måske lave lidt om. Jeg kan vel ikke bare bede den om at åbne et vindue maksimeret.
Avatar billede roenving Novice
03. januar 2006 - 16:41 #15
Tjoh, javascript er utroligt aftergivende over for den slags, så du kan bare have et forskelligt antal parametre, f.eks. ingen (udover urlen !-), hvis du vil have det i en fast bestemt størrelse, en ekstra, hvis det skal være maksimeret og to ekstra, hvis det skal være en bestemt størrelse:

function openWin(url,bredde,hojde){
  if(!newWin.closed)
    newWin.close();
  switch(openWin.arguments.length){
    case 0:
      return;//intet at åbne, afbryd
      break;
    case 1:
      var bredde = 400;//den faste størrelse
      var hojde = 300;
      var l = (screen.availWidth-bredde)/2;
      var t = (screen.availHeight-hojde)/2;
      break;
    case 2:
      var l = t = 0;
      var bredde = screen.availWidth;
      var hojde = screen.availHeight;
      break;
    case 3:
      var l = (screen.availWidth-bredde)/2;
      var t = (screen.availHeight-hojde)/2;
  }
  newWin = window.open(url,"newWin","width=" + bredde + ",height=" + hojde + ",top=" + t + ",left=" + l);
  newWin.focus();
}
Avatar billede rynke10 Novice
03. januar 2006 - 16:47 #16
Det er jo helt super, så kan jeg have en fast defineret størrelse og stadig ændre hvis jeg har brug for det.
Kender du så lige en kommando hvis jeg vil have focus på det oprindelige vindue, fra det jeg har åbnet?
parent.focus.eteller.andet
Avatar billede roenving Novice
03. januar 2006 - 16:49 #17
opener.focus() !-)
Avatar billede rynke10 Novice
03. januar 2006 - 16:54 #18
1000 tak. SÅ er det sengetid!! (på den modsatte side af jorden er klokken snart midnat. )
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