Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JavaScript: PopUp

Sivun loppuun

Rocceri [24.02.2009 08:59:08]

#

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? ;)

Kray [24.02.2009 09:07:49]

#

Javascriptillä alert("moi"); . Tähän ei tuota estojuttua kuitenkaan saa (ainakin operassa tosin on siinä että lopeta skriptien suorittaminen tältä sivulta -laatikko)

Lumpio- [24.02.2009 09:11:13]

#

Käyttäjäsi varmasti arvostavat ärsyttäviä popupeja.

Rocceri [24.02.2009 13:44:03]

#

Tähän Alert käskyyn ei saa varmaankaan linkkejä?

Ps. Parempia vastauksiakin otetaan mukaan, jos oisi vaikka tuo painike mahdollista ;)

Blaze [24.02.2009 15:27:42]

#

Ei, ainoa asia, mitä voit muuttaa, on se teksti.

Juhko [24.02.2009 15:53:53]

#

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ää.

Teuro [24.02.2009 16:27:11]

#

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.

Rocceri [25.02.2009 15:49:14]

#

Selevä..

reca [25.02.2009 16:59:53]

#

PopUpit ovat erittäin ärsyttäviä. Nopeasti ei tule mieleen yhtään järkevää/ei ärsyttävää sovellutusta, jossa niitä käytettäisiin.

eq [25.02.2009 17:48:04]

#

Ja jotkut vielä kyseenalaistavat NoScriptin hyödyllisyyden? :)

Juhko [05.03.2009 17:24:03]

#

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ää.

Tumettaja [05.03.2009 18:08:28]

#

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?

Rocceri [06.03.2009 08:26:18]

#

Juhko, esikerkkejä? ;)

Juhko [10.03.2009 18:07:33]

#

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ä... ;)

Rocceri [10.03.2009 18:30:20]

#

Thänx! Täähän on aivan mahtava! :)

Juhko [10.03.2009 18:40:50]

#

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.

punppis [10.03.2009 23:34:18]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta