Avatar billede Slettet bruger
22. april 2003 - 14:15 Der er 21 kommentarer og
1 løsning

Hjælp til at tjekke om et bestem showModalDialog vindue er åbent

Hej!

Jeg bruger

onclick="showModalDialog('select_image.php','mitvindue','resizable: no; help: no; status: yes; scroll: no; ');"

til at åbne et vindue med, hvor brugeren så skal bladre frem og tilbage imellem nogle billeder. Men når jeg sætter links ind åbner de i nyt vindue, det løste jeg ved at bruge samme kode

onclick="showModalDialog('select_image.php','mitvindue','resizable: no; help: no; status: yes; scroll: no; ');"

til at bladre med. Desværre åbner hver bladring et nyt vindue af samme type, hvordan undgår jeg det?

Det jeg skal gøre er vel at tjekke om "mitvindue" er åbent, og hvis det er skal det enten reloade så indholdet ændres, eller det gamle skal lukkes... eller?
Avatar billede iver25 Nybegynder
22. april 2003 - 14:23 #1
Har du TARGET="_self" på dine links? Så åbner den nye side i samme side som linket befinder sig.
Avatar billede Slettet bruger
22. april 2003 - 14:28 #2
Ja jeg har target="_self" og nej, de åbner stadig et nyt vindue (altså et vindue magen til min ModalDialog boks)

Dette vindue lægger sig ovenpå det andet, og jeg kan da komme udenom det med en onclick="window.close()" men det er ikke særligt elegant, og er meget grimt hvis man bladrer frem og tilbage (15 vinduer der æder ressourcer istedet for 1)
Avatar billede iver25 Nybegynder
22. april 2003 - 14:30 #3
Må jeg se noget kode. Det er lidt nemmere at hjælpe hvis jeg fx kan se hvordan dit link ser ud.
Avatar billede Slettet bruger
22. april 2003 - 14:36 #4
Lige nu bruger jeg f.eks. onclick=\"showModalDialog('select_image.php?offset=$forrige','mitvindue','resizable: no; help: no; status: yes; scroll: no; '); window.close()\"

Dette burde i min verden ikke åbne et nyt vindue eftersom vinduet allerede er åbnet, men det gør det alligevel. 2 vinduer kan da ikke have samme navn?
Avatar billede iver25 Nybegynder
22. april 2003 - 14:40 #5
Jeg har selv lavet noget lignende, og der har jeg brugt en form. Det virker ganske glimrende.
Avatar billede olebole Juniormester
22. april 2003 - 14:48 #6
<ole>

iver25 >> Du misforstår vist spm'et fundamentalt. Der er ikke tale om et popUp-vindue, men en modal-dialog. Sådan en kan du ikke lave sideskift i  :)

el_barto >> Du bliver nødt til at indskrive en 100% iframe i modal-dialogen. Den kan du så navigere i  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
22. april 2003 - 14:54 #7
ole> Aha, ja det er nok rigtigt...hmm, det må jeg jo så bare lave ;)
Avatar billede olebole Juniormester
22. april 2003 - 14:57 #8
Du kan åbne din dialog med:
 
<a href="#" onclick="showModalDialog('side.php?init=true','mitvindue','resizable: no; help: no; status: yes; scroll: no;');return false;">TEST</a>

Så kan din 'side.php' se sådan ud:

<?
if ( isset($_GET["init"]) && $_GET["init"]==true ) {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Min Modale Dialog Box</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html, body {
    height: 100%;
    margin: 0px;
}
</style>
</head>
<body>

<iframe src="side.php" style="width:100%;height:100%" frameborder="0"></iframe>

</body>
</html>
<?
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

Her kan du skrive din egentlige side og navigere, som du vil

</body>
</html>
<?
}
?>

/mvh
Avatar billede olebole Juniormester
22. april 2003 - 14:59 #9
Kan laves mere elegant, men dette viser idéen  :)
/mvh
Avatar billede Slettet bruger
22. april 2003 - 15:22 #10
I øvrigt er den anden parameter i showmodaldialog ikke navnet på vinduet ligesom med window.open. 2. parameter bruges til at give variabler eller objekter videre til det nye vindue.
Avatar billede olebole Juniormester
22. april 2003 - 15:25 #11
Naturligvis .... det overså jeg (copy/wate)  :)
Avatar billede Slettet bruger
22. april 2003 - 19:08 #12
ok, det har jeg fået til at virke nu...men kan jeg ikke få fat i window.opener mere så?

Den melder tilbage at window.opener.document.osv er null eller ikke et object?
Avatar billede olebole Juniormester
22. april 2003 - 19:13 #13
window.opener kan du da aldrig bruge i en modalDialog  :)
Avatar billede Slettet bruger
22. april 2003 - 19:15 #14
Øhm...nåh nej...jeg grr...hrm...

Kan jeg sende en parameter tilbage til min første modalDialog så?

Altså fra modalDialog til modalDialog?
Avatar billede olebole Juniormester
22. april 2003 - 19:16 #15
Du kan skrive:
  <a href="#" onclick="showModalDialog('side.php?init=true',this,'resizable: no; help: no; status: yes; scroll: no;');return false;">TEST</a>

Og:

<?
if ( isset($_GET["init"]) && $_GET["init"]==true ) {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Min Modale Dialog Box</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/JavaScript">
var myOpener = window.dialogArguments;
</script>
<style type="text/css">
html, body {
    height: 100%;
    margin: 0px;
}
</style>
</head>
<body>

<iframe src="side.php" style="width:100%;height:100%" frameborder="0"></iframe>

</body>
</html>
<?
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

Her kan du skrive din egentlige side og navigere, som du vil

</body>
</html>
<?
}
?>

Så kan du altid referere til 'parent.myOpener'  :)
/mvh
Avatar billede olebole Juniormester
22. april 2003 - 19:20 #16
Altså f.eks:

<body>

Her kan du skrive din egentlige side og navigere, som du vil

<a href="#" onclick="parent.myOpener.document.body.innerHTML='Det virker';return false">TEST</a>

</body>

Det, du refererer til med 'parent.myOpener' er vinduet ... ikke dokumentet  ;o)
/mvh
Avatar billede Slettet bruger
22. april 2003 - 19:27 #17
Jeg prøver lige at forklare mig bedre ;)

Jeg vil indsætte et billede, derfor åbner jeg en ModalDialog.

I denne kan man vælge fra en dropdown liste, eller klikke på en knap der åbner en ny ModalDialog.

I denne skal man (efter at have set billederne) klikke på et link, der sender en værdi tilbage til den første ModalDialog, og smider det ind i et tekstfelt (egentlig skal den vælge noget i en selectbox men det kommer senere)

Jeg er lidt lost, men jeg laver bare et almideligt popup vindue i stedet for den 2. ModalDialog hvis det er helt umuligt det andet. Mit formål var at få det til at se nogenlunde ens ud ;)
Avatar billede olebole Juniormester
22. april 2003 - 19:34 #18
Når du åbner en modalDialog kan du sende en variabel (evt. i form af et array, hvis du skal bruge mange) med som det andet argument i kaldet:

<a href="#" onclick="showModalDialog('side.php', this, 'resizable: no; help: no; status: yes; scroll: no;');return false;">TEST</a>

Nu har jeg medsendt en variabel, der refererer til det vindues-objekt, der åbnede dialogen (this).
I dialogen kan jeg hente denne reference med 'window.dialogArguments', som nu vil referere til det vindues-objekt, der åbnede dialogen. Fuldstændig ligesom 'opener' i en popup.

Så er det op til dig at bruge denne reference til, hvad du måtte ønske dig  :)
/mvh
Avatar billede Slettet bruger
22. april 2003 - 19:49 #19
Ahaaa!!

Jeg så lyset ;)

Nu virker det, og alt er lysegrønt (både træerne og mit håb om at blive færdig mens det er forår)

Tak for hjælpen Ole, altid godt at have en ekspert til at banke viden ind i det overfyldte hovede *G*
Avatar billede olebole Juniormester
22. april 2003 - 19:56 #20
Fino ..... så tillader jeg mig at komme med et svar  ;o)
/mvh
Avatar billede Slettet bruger
22. april 2003 - 22:46 #21
Det har du da også fortjent :)

Tak for hjælpen!
Avatar billede olebole Juniormester
22. april 2003 - 22:49 #22
... anytime  ;o)
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

IT-JOB

Capgemini Danmark A/S

Open Application (Denmark)

Politiets Efterretningstjeneste

Configuration Manager til PET's IT-afdeling

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer