Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 15:31 Der er 11 kommentarer og
1 løsning

Tjeck om vindue allerede eksisterer

Hmm... Jeg er igang med at bygge en side hvor brugeren skal kunne høre udsnit af nogle sange. Jeg har sat den til at lave et popup-vindue med Java, hvorfra sangene så spilles.. Her ligger siden (det er kun en PRØVE):

http://www.geocities.com/revolt_musik2/
(eller brug pegedomænet:
www.fedmusik.tk - fjerner da nogle af reklamerne)

Klik på 'AUDIO' i topmenuen.

Sangene bliver spillet ved at de er sat ind som "baggrund" på siderne. Det fungerer altså sådan at der er et frameset i popup-vinduet, og at, når man vælger en sang i menuen, så åbner den en side med noget text, og med sangen som baggrund
Altså baggrund på denne måde:
<EMBED SRC="bb/sangen.mid" HIDDEN=true AUTOSTART=true>
<NOEMBED><BGSOUND SRC="bb/sangen.mid"></NOEMBED>

Det fungerer såmen også fint nok når man klikker rundt i menuen, og kigger på siden.. Men når man så trykker på AUDIO i menuen igen, så reloader den popup-vinduet, og stopper altså sangen man er ved at høre..

Den (enkle) kode den bruger til at åbne popup-vinduet med, er:

<script language="JavaScript">
window.open('audio/audio.htm', 'Audio', 'width=300,height=130,')
</script>

Jeg har absolut ingen forstand på Java, så jeg ved ikke om det kan lade sig gøre, men er det muligt at lave et script, der først tjecker om popup-vinduet allerede er åbnet, og som så
hvis vinduet ikke er åbnet, åbner det
og hvis vinduet er åbnet, ikke åbner det igen (altså reloader det)..

Er der nogen der kan hjælpe mig?
Avatar billede roenving Novice
23. maj 2004 - 15:47 #1
Nu kan min viden om Java også ligge på et absolut meget lille sted, men jeg ved da så meget, at det ikke har det fjerneste med javascript at gøre (nå, ja, bortset fra 4 ting: j - a - v - a !-)

Men det, du gør nu, er vel præcis at reloade vinduet, og det er da klart, at så stopper lyden, for det vil jo være den ny sides baggrundsmusik, som kører ...

Browseren vil altid forsøge at genbruge et vindue, hvis det har samme windowname, her: 'Audio' ...
Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 15:53 #2
Nånå... J sagde jo også at j ikke havde forstand på java..
Men jeg mente jo om man ikke kunne få den til at tjecke om der allerede var et vindue der havde navnet 'Audio', du ved:
------
If'vindue-med-navnet-'Audio'-allerede-eksisterer-så-goto:SUPERMAN'

window.open('audio/audio.htm', 'Audio', 'width=300,height=130,')

SUPERMAN:
blablablabla...
-------

Hvad ved jeg?
Jeg kom jo for at få hjælp :)

Så der er altså overhovedet ikke nogen måde man kan gøre det på?
Avatar billede roenving Novice
23. maj 2004 - 16:08 #3
Jo, da ...

-- men bemærk lige: brug ikke ordet java om det scripting-sprog, du bruger i en browser, jeg tror også lige, der er nogle mennesker, som ville blive alvorligt stødt, hvis du i fulde alvor mente at en Ferrari og en lille elektrisk vogn stort set var det samme ...

Jeg har blot ikke forstået hvad det er, du ønsker !-)

Hvis du vil vide om vinduet eksisterer, er den simple:

<script type="text/javascript">
var pop = {'closed':true};

function openWin(){
  if(pop.closed){
    pop = window.open('audio/audio.htm', 'Audio', 'width=300,height=130,status=no')
  }else{
    //Hvad du vil, hvis vinduet findes ...
    //Og her forstår jeg ikke dine intentioner ?-)
  }
}
</script>
Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 16:20 #4
Hmm... Det virker ikke.. Nu åbner den slet ikke noget vindue.. ?

Altså;

Når man trykker på audio i menuen, så skal den åbne popup'en.

Hvis man så senere trykker på audio igen, og man stadig har popup'en åben, så skal den ingenting gøre.
- men har ikke popup'en åben, så skal den åbne den :)

hehe.. ja..
Forstår du?
Avatar billede roenving Novice
23. maj 2004 - 16:27 #5
Ja, så tror jeg, jeg forstår ...

<a href="#" onclick="openWin();return false;">Audio</a>
Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 16:36 #6
???

Nej, altså, ikke når man TRYKKER på audio.. eller jo, indirekte:

Altså, når man trykker på audio, skal den åbne r_audio.htm - hvilket den allerede gør - og i r_audio.htm skal der så være en kode der gør det, som jeg lige forklarede... :)

?
Avatar billede roenving Novice
23. maj 2004 - 16:38 #7
<body onload="openWin()"> i r_audio.htm ...

Men den vil blive fanget af en popupstopper, så det skal du nok lige gøre opmærksom på !-)
Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 16:45 #8
hmm... ok... men hvis jeg bruger det gamle script:

<script language="JavaScript">
window.open('audio/audio.htm', 'Audio', 'width=300,height=130,')
</script>

ville det så ikke også blive stoppet af en popupstopper?
Avatar billede roenving Novice
23. maj 2004 - 16:48 #9
Jo, sikkert, lidt afhængigt af de indstillingsmuligheder som den aktuelle popupstopper har ...
Avatar billede omtus_komikatus Nybegynder
23. maj 2004 - 16:55 #10
AHA!! Hmm.. jeg har ordnet det :)

Jeg bruger bare din

<a href="#" onclick="openWin();return false;">Audio</a>

og.. ja... Her: www.fedmusik.tk - klik på AUDIO.. og klik så på kagekagekage nederst!
Tak for hjælpen! :)
Bare send et svar...
Avatar billede roenving Novice
23. maj 2004 - 17:00 #11
Velbekomme '-)
Avatar billede roenving Novice
23. maj 2004 - 17:04 #12
-- og tak for point ;~}
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