Terve
Tarvitsisin sellaisen PopUp koodin (Ei taida ihan olla PopUp, vaan joku Alert. En muista oikein.. :/) joka sivulle tultaessa sanoisi vaikka:
"Tervetuloa sivuilleni" (Erillisessä ikkunassa, of course)
ja alareunassa olisi valintaruutu: "Älä näytä tätä uudelleen" joka myös tottelisi tätä lausetta. Jollei ruutua valitse, se näyttää sen kun tulee tälle kyseiselle sivulle.
Tajusittekos? ;)
Javascriptillä alert("moi"); . Tähän ei tuota estojuttua kuitenkaan saa (ainakin operassa tosin on siinä että lopeta skriptien suorittaminen tältä sivulta -laatikko)
Käyttäjäsi varmasti arvostavat ärsyttäviä popupeja.
Tähän Alert käskyyn ei saa varmaankaan linkkejä?
Ps. Parempia vastauksiakin otetaan mukaan, jos oisi vaikka tuo painike mahdollista ;)
Ei, ainoa asia, mitä voit muuttaa, on se teksti.
Voit tehdä divin ja lisätä siihen nappuloita, kun vain määrität sen sijainnin ja taustan CSS:llä.
Estojutun voisi luultavasti tehdä evästeillä, mutta ne palaisivat takaisin, jos/kun käyttäjä poistaa evästeet. Toinen tapa on tallentaa käyttäjän IP johonkin tiedostoon (PHP:llä) ja tarkistaa sivun latauksen yhteydessä, saako popupin näyttää.
Juhko kirjoitti:
Toinen tapa on tallentaa käyttäjän IP johonkin tiedostoon (PHP:llä) ja tarkistaa sivun latauksen yhteydessä, saako popupin näyttää.
Joka ei ole mitenkään varmaa, kun muistetaan ettei IP ole juuri kenelläkään staattinen. Mikäli alertille ei ole muuta funktiota, kuin että se on "hieno", niin kannattaa jättää tekemättä koko asia.
Selevä..
PopUpit ovat erittäin ärsyttäviä. Nopeasti ei tule mieleen yhtään järkevää/ei ärsyttävää sovellutusta, jossa niitä käytettäisiin.
Ja jotkut vielä kyseenalaistavat NoScriptin hyödyllisyyden? :)
Njoo, tämä on vähän wanha, mutta tuli mieleen, että eikö sitä estojuttua voisi tehdä sessioneilla? Ja sitten tarkistat jo palvelinpäässä, että saako popupin näyttää.
Juhko kirjoitti:
Njoo, tämä on vähän wanha, mutta tuli mieleen, että eikö sitä estojuttua voisi tehdä sessioneilla? Ja sitten tarkistat jo palvelinpäässä, että saako popupin näyttää.
Tietenkin, miksi ei voisi?
Juhko, esikerkkejä? ;)
No vaikkapa...
Itse sivu (esim. index.php)
<?php session_start(); ?> <html> <head> <title>Mun sivu</title> <style type="text/css"> #popup { background-color: #a0a0a0; position: fixed; left: 80; top: 80; } </style> </head> <body> Tää on mun sivu. Tässä näkyy popuppi, jos et oo estäny sitä. ;) <?php if(!($_SESSION["estetaan"] == "joo")) { echo '<div id="popup">Tere tulemast!<br><form name="popupForm"><input type="checkbox" name="esteNappi">Elä näytä tätä uudelleen<br><input type="button" onClick="okNappi();" value="OK"></form></div>'; echo '<script type="text/javascript">function okNappi() {document.getElementById("popup").style.visibility = "hidden"; if(document.popupForm.esteNappi.checked) {document.location.href = "esta_popup.php";}}</script>'; } ?> </body> </html>
esta_popup.php:
<?php session_start(); $_SESSION["estetaan"] = "joo"; header("Location: http://www.rocceri.com/index.php"); ?>
Voit antaa käyttäjän sallia popupin uudelleen tällä koodilla:
<?php session_start(); $_SESSION["estetaan"] = ""; header("Location: http://www.rocceri.com/index.php"); ?>
EDIT: Kauheita muuttujanimiä... ;)
Thänx! Täähän on aivan mahtava! :)
Jos haluat, voit tehdä tuon myös erilliseen ikkunaan, jolloin sinun pitää käyttää window.open
:ia. Eli laitat pääsivun echojen tilalle:
echo "<script type="text/javascript">window.open('popup_ikkuna.html', 'Tervetuloa sivuilleni', config='height=320,width=320')</script>";
Lomakkeen (sen, missä on nappulat) siirrät popup_ikkuna.html:ään. Sitten laitat okNappi()-funktioon checkboxin testauksen jälkeen window.close(); ja esta_popup.php:n header("Location...
-rivin otat pois ja kirjoitat ?>
:n jälkeen:
<html><head><script type="text/javascript">window.close();</script></head><body></body></html>
Toivottavasti meni oikein.
ps. Älä tee niin.
Mielestäni ainoat järkevät paikat, mihin erillisiä ikkunoita tarvitsee laittaa, on esim. jonkun asian poistamisen varmistus ("Haluatko varmasti poisaan tiedoston x? Kyllä/Ei).
Verkkokauppa.comin tuoteinfo-popup on myös kohtuullisen toimiva, mutta mitään alertteja ei kukaan halua lukea.
Aihe on jo aika vanha, joten et voi enää vastata siihen.