Avatar billede hkb-x Nybegynder
15. august 2005 - 15:34 Der er 23 kommentarer og
1 løsning

svar tilbage fra popup

jeg har åbnet et popup vindue med JS men jeg vil gerne vide om det er åbnet så brugeren ser det eller om det er blevet fanget i en popup spærrer. Jeg har hørt at popup'en kan sende et "svar" tilbage til det vindue der har åbnet det... hvordan gør jeg det...
Avatar billede roenving Novice
15. august 2005 - 16:09 #1
try{
  window.open(...);
}catch(e){
  alert("En nødvendig popup blev blokeret !-)");
}
Avatar billede hkb-x Nybegynder
15. august 2005 - 16:33 #2
og i hvilket vindue skal jeg sætte det.. det der åbner?
Avatar billede roenving Novice
15. august 2005 - 16:38 #3
Du kaster din window.open-kode ind i den try-catch-blok ...

Hvis vinduet bare åbner er alt jo fint, hvis det ikke åbner, så kommer fejlbeskeden !-)
Avatar billede hkb-x Nybegynder
15. august 2005 - 16:50 #4
jeg skal kaste et par <script type="text/javascript"></script> tegn omkribg det... for jeg får en fejl ved alert ()
Avatar billede roenving Novice
15. august 2005 - 16:55 #5
Hvordan åbner du ellers din popup ?-)
Avatar billede hkb-x Nybegynder
15. august 2005 - 17:04 #6
<body onload="window.open('');">
Avatar billede roenving Novice
15. august 2005 - 17:14 #7
Det er zq da også dumt at åbne en popup onload, for den vil stort set blive blokeret overalt !o]

-- og hvis jeg oplevede det (og opdagede det !-), ville jeg da absolut stoppe med at besøge den side, medmindre det var et spørgsmål om liv eller død, at jeg skulle besøge den ...

-- men ellers fjerner du bare linjeskiftene fra eksemplet og sætter ind i !o]
Avatar billede hkb-x Nybegynder
15. august 2005 - 17:27 #8
oki... haha... hved ved jeg... er først lige begyndt på JS:

men hvad er der galt med onload?
Avatar billede hkb-x Nybegynder
15. august 2005 - 17:31 #9
og hvad skal jeg gøre hvis den skal lave en alert hvis vinduet ikke åbnes starter en session i php hvis det åbnes...
Avatar billede roenving Novice
15. august 2005 - 17:34 #10
_Alle_ popup-stoppere blokerer en popup, som åbnes på den måde ...

_Alle_ nutidige browsere har en indbygget popup-stopper, så medmindre den aktivt er blevet slået fra, vil din popup blive blokeret ...

-- og så kan du ligesågodt bare komme med alerten og gøre opmærksom på, at du godt vil have brugeren til at trykke på et link, for så vil en popup normalt ikke blive blokeret !-)
Avatar billede roenving Novice
15. august 2005 - 17:35 #11
Hvorfor skal du bruge en popup til at starte en session ?-)
Avatar billede hkb-x Nybegynder
15. august 2005 - 17:37 #12
det er bare så popupet ikke bliver vist når det først har været åbnet 1 gang..
Avatar billede hkb-x Nybegynder
15. august 2005 - 20:25 #13
sådan ser min kode ud... men den virker ikke... hvad er der galt...


<script type="text/javascript">
try{
    window.open('popup.php','popup','width=293,height=355,scrollbars=no,toolbar=no,resizable=no');
}catch(e){
  alert("En nødvendig popup blev blokeret!");
} else { <? $_SESSION['brev'] == "true"; ?> }
</script>
Avatar billede per1291 Nybegynder
16. august 2005 - 02:26 #14
Kan ikke lige gennemskue. Men prøv dette:

<script type="text/javascript">
function try()
{
window.open('popup.php','popup','width=293,height=355,scrollbars=no,toolbar=no,resizable=no');
}
catch(e)
{
  alert("En nødvendig popup blev blokeret!");
} else { <? $_SESSION['brev'] == "true"; ?>
}
window.onload=try();
</script>

Hilsen Per
Avatar billede roenving Novice
16. august 2005 - 02:30 #15
>>per

-- du må ikke sætte paranteser på en funktionstildeling, hvis ikke du bruger en anonym funktion, så tildelingen vil skulle se sådan ud:

window.onload = minTry;

-- og det er særdeles uhensigtsmæssigt at disable indbyggede funktioner eller strukturelle javascript-elementer som try !-)
Avatar billede per1291 Nybegynder
16. august 2005 - 02:40 #16
Okay. Var ikke klar over at try er et reserveret ord. (Mit kodeforslag har for resten en tuborg-afslutning for meget!) - Hilsen Per
Avatar billede roenving Novice
16. august 2005 - 02:45 #17
En try/catch-blok er den måde, man i javascript (og vist i de fleste programmeringssprog baseret på c/c++ syntaks !-) runtime kan tage højde for fejl, som det ikke er muligt at kode sig ud af !o]

-- men det kan da godt være, at man først skal prøve onload, og så bliver det:

<script type="text/javascript">
window.onload = function(){
  try{
    window.open('popup.php','popup','width=293,height=355,scrollbars=no,toolbar=no,resizable=no');
  }catch(e){
    alert("En nødvendig popup blev blokeret!");
  }
}
//whaddd er dette:
// else { <? $_SESSION['brev'] == "true"; ?> }
// der findes ingen else i try/catch !-)
</script>
Avatar billede hkb-x Nybegynder
16. august 2005 - 10:04 #18
@roenving

hele pointen er at den skal starte $_SESSION['brev'] hvis vinduet åbnes... og lave en alert hvis det ikke...
Avatar billede hkb-x Nybegynder
16. august 2005 - 10:09 #19
popupvinduet må kun blive vis én gang per besøg...
Avatar billede roenving Novice
16. august 2005 - 13:28 #20
Hvis du vil starte en session, skal du kalde koden med popup.php !-)

-- umiddelbart ville jeg skrive noget i session eller i en cookie, som ikke startede en ny session ved navigation, men der er vi langt forbi javascript-tingene !o]
Avatar billede hkb-x Nybegynder
16. august 2005 - 13:31 #21
ok... tror lige jeg tager den forfra...

HVAD JEG VIL LAVE:

et popup der kun vises 1 gang per besøg!
men det skal vises... hvis det bliver fanget i en bloker skal der komme en alert...

derudover ligger jeg +15 point til den der kan komme med et script der virker...
Avatar billede per1291 Nybegynder
16. august 2005 - 13:44 #22
Blot et hint: I head-sektionen læg et script indeholdende

var firsttime=true;
function showPopup()
{
if (firsttime) {...};
firsttime=false;
}

- Hilsen Per
Avatar billede hkb-x Nybegynder
04. oktober 2005 - 14:11 #23
fandt en alternativ løsning...

men tak for alle indlægene... har givet god inspiration...

LUKKET
Avatar billede hkb-x Nybegynder
04. oktober 2005 - 14:11 #24
LUKKET sage jeg
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