Avatar billede axkris Nybegynder
23. august 2005 - 17:34 Der er 11 kommentarer og
1 løsning

Fang mormor-vinduet

Hej alle

Det er en skam, at man ikke kan gøre sådan:
self.opener.opener.location.reload();

Altså gå 2 niveauer tilbage, dvs. tilbage til moderens moder, eller mormor-vinudet om man vil ;-)

Kan man gøre noget andet så?
Avatar billede olebole Juniormester
23. august 2005 - 17:40 #1
<ole>

- så er det sandelig godt, det præcis er, hvad man kan, hva'?  :)

/mvh
</bole>
Avatar billede axkris Nybegynder
23. august 2005 - 17:41 #2
Ok, så må fejlen ligge et andet sted. Vender lige tilbage :-)
Avatar billede olebole Juniormester
23. august 2005 - 17:41 #3
- og skal vi finde ud af, hvorfor du ikke kan, må du nok komme med nogle flere info - og helst et link  :)
Avatar billede olebole Juniormester
23. august 2005 - 17:42 #4
- kan det mellemliggende vindue være blevet lukket?
Avatar billede olebole Juniormester
23. august 2005 - 17:46 #5
Når du åbner dit andet vindue, kan du helgardere ved at skrive noget à la:

var win = window.open( ... );
win.mormor = opener;

- så ligger der i det nyåbnede vindue en reference (mormor) til det oprindelige vindue ... uanset, om du lukker det mellemliggende  ;o)

Så vil syntaksen altså være:
    mormor.location.reload();
Avatar billede axkris Nybegynder
23. august 2005 - 17:46 #6
Fejlen er:
The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call did not execute.

Og det mellemliggende vinduer bliver faktisk lukket, før mormor-vinduet kaldes. Ok, så har jeg noget at arbejde videre med.

Tryk svar :-)
Avatar billede axkris Nybegynder
23. august 2005 - 17:53 #7
Lige et side-sgp. Hvad er forskellen på, at man siger:

  window.open("side.htm","mormor"...
Eller:
  mormor = window.open("side.htm"...

Kan de begge kaldes, som du har vist ovenfor, eller er det i det sidste eksempel ikke tale om en reference, men noget andet... som er?
Avatar billede olebole Juniormester
23. august 2005 - 19:56 #8
Ingen af delene kan du bruge. I første tildeler du det nyåbnede window-objekt navnet 'mormor'. I det andet lægger du en reference til vinduet i variablen 'mormor' - men det er ingen af delene, du skal gøre. Gør som jeg viste dig det:

// Læg en reference til vinduet i variablen 'win'
var win = window.open( ... );

// Opret en property 'mormor' på det nyåbnede window-objekt,
// der refererer til 'min' opener:
win.mormor = opener;
Avatar billede axkris Nybegynder
23. august 2005 - 20:10 #9
Hej Ole

Hymm, det virker ikke - den siger undefined. Hvad har jeg gjort forkert?

Hovedvinduet:
response.write "<a href=""#"" onClick=""alert('Der åbnes nu et lille vindue, hvori du finder betalings-oplysningerne.\n\nHvis du slået popup-vinduer fra, vil siden ikke kunne blive vist.'); var win = window.open('/annonce/pop_doPayment.asp?plusprofilID=" & RS("ANNONCE_ID") & "', 'annonce','height=400,width=500,top=119,screenY=119,left=112,screenX=112,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no'); win.paymentWindow = opener; return false;"">Betal her!</a>"

Det åbnede vindue lukkes, efter at have åbnet de 3. vindue, som afslutter med:

<script language="javascript1.2">
paymentWindow.location.reload();
self.close();
</script>

Den siger, at paymentWindow er undefined.
Avatar billede olebole Juniormester
23. august 2005 - 20:40 #10
Tre filer ... test.html, test2.html og test3.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
}
</style>
<script type="text/JavaScript">
function myOpen() {
    window.open("test2.html","win","width=300,height=250")
}
function myTestFunc() {
    alert("Du kaldte funktionen: 'myTestFunc'");
}
</script>
</head>
<body>

<button onclick="myOpen()">Åben PopUp</button>

</body>
</html>

-------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
}
</style>
<script type="text/JavaScript">
function myNewOpen() {
    var gnu = window.open("test3.html","win2","width=300,height=250");
    gnu.mormor = opener;
}
</script>
</head>
<body>

<button onclick="myNewOpen()">Åben Ny PopUp</button>

</body>
</html>

--------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
}
</style>
</head>
<body>

<button onclick="mormor.myTestFunc()">Test MorMor</button>

</body>
</html>

Kald test.html i en browser - resten siger sig selv  :)
Avatar billede axkris Nybegynder
23. august 2005 - 21:41 #11
Fejlen er fundet - det er SP2, der med sin "Block content", går ind om jammer det, selvom man siger "allow bloacked content". Men det er heldigvis kun noget, som den gør, når man kører det på sin egen pc (og ikke på webserver).

I firefox virker det dog begge steder.

Takker for hjælpen - tryk svar :-)
Avatar billede olebole Juniormester
23. august 2005 - 21:47 #12
Ja, det bør du pille fra i IE, når du udvikler webkode  :)
- og selvtak  ;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