webForumDet fria alternativet

Prompta användare som lämnar sidan

Webbutveckling

7 svar · 2 492 visningar · startad av Dryden

Medlem sedan aug. 200218 625 inlägg
Frågan#1

Jag skulle vilja ha en funktion som på något sätt promptar en användare som är på väg att lämna en viss sida. Har hittat tre olika alternativ, inget är helt optimalt beroende på hur användaren väljer att lämna sidan, så då är frågan om det går att lösa på något annat smidigt sätt.

Det här har jag kommit fram till så här långt:

  • Lightboxvarianten, det är den variant jag just nu förespråkar då den dels går att designa efter eget behag men också fylla med formulär så att slutanvändaren kan lämna uppgifter, vilket är ett av syftena med att prompta överhuvudtaget. Nackdelen är att den blir meninglös om användaren stänger ner fönstret/fliken eller knappar in en annan URL direkt i adressfältet. Dock borde den väl fungera om man exempelvis väljer att klicka på en länk på den aktuella sidan. Jag är osäker.
  • Popupfönster är ju alltid "populärt" och går ju också att designa om än inte lika snyggt som lightboxvarianten. Men såklart då, har du en popdödare så blir även den här varianten meninglös. I övrigt aktuell då fönstret går att fylla med vad man vill, i det här fallet ett formulär.
  • Systemmeddelande. Hårt och brutalt, ruta som "låser" webbläsaren tills användaren gjort ett val. "Du är på väg att lämna sidan, är du säker? JA eller NEJ". Nackdelen är att den för det första tenderar att bli ful och det går inte heller lägga in ett formulär. I övrigt kan den ju styras att dyka upp när man minst anar det, om man exempelvis stänger ner en flik eller dylikt.

Har jag missat något? Kom gärna med förslag på hur det här kan lösas på ett smidigare och bättre sätt än mina föreslagna. Tack på förhand!

Medlem sedan feb. 20034 441 inlägg
#2

Jag byggde en sån här lösning åt en kund för ett tag sen som har visat sig fungera helt okej. Jag satt och funderade över olika lösningar fram och tillbaka och det slutade med att jag byggde en egen med hjälp av jQuery.

Fungerar så att det ligger två stycken <div>-taggar som är 100% breda och 15px höga i fönstrets övre kant. Dom ligger alltså under varann så det första har position från top 0px och den andra på 15px, direkt under.

När musen förs upp t.ex. mot krysset eller något annat flik, så passerar man först den undre diven. En variabel sätts till värde 2. När musen går över den övre och om värdet är 2, så öppnas en lightboxliknande pryl.

Anledningen till 2st divar är att det här gör att rutan _bara_ aktiveras då musen förs nedifrån och upp. Sen har vi även möjlighet att sätta en tid, som gör att besökaren måste ha varit på sidan i t.ex. 10 sekunder för att prompten ska aktiveras.

Har visat sig mycket användbart det här, nackdelen är ju dom som inte kör med javascript, men det är sån liten andel användare, samt att så mycket annat inte heller fungerar då.

Medlem sedan aug. 200218 625 inlägg
#3

Går det sätta fler krav på en sådan lösning? Exempelvis om användaren fyllt i minst ett fält på sidan? Det här rör sig alltså om en sida för avtalstecknande, och man vill fånga upp kunderna som lämnar sidan utan att ha fyllt i formuläret komplett.

Medlem sedan feb. 20034 441 inlägg
#4

Absolut!
Jag kör ju jQuery som sagt, och i en av funktionerna kan man enkelt loopa igenom alla textfält på sidan, typ:

$.each($('#myForm input[type="text"]'), function(e){
  if($(this)).val().length != 0) minVar = 2; break;
});

...typ.. Loopen körs och värdet som triggar prompten körs bara om minst ett textfält är ifyllt.

Är sinnessjukt trött just nu så vågar inte svära på att ovan är 100% rätt, men det borde fungera :)

Medlem sedan aug. 200218 625 inlägg
#5

Stort tack så länge, behöver jag klarhet i något så återkommer jag! :)

Medlem sedan aug. 20039 340 inlägg
#6

Av de tre alternativen så är det i praktiken bara #3 som kan stoppa stängningen av sidan. Dock blir det ju fult som stryk...
Skulle du inte ha vaskat fram kod för detta så följer ett exempel nedan.

<script type="text/javascript">
window.onbeforeunload = function (e) {
	var message = "Hörrö du du du! Du kan väl inte sticka bara så där?";
	var e = e || window.event;

	e.returnValue = message;
}
</script>
Medlem sedan aug. 200218 625 inlägg
#7

MickeA.com, du har inget konkret att visa upp vad gäller din lösning? Alltså, inte kod utan som slutanvändare.

nitro, jag vill verkligen försöka undvika tredje alternativet. :)

Medlem sedan feb. 20034 441 inlägg
#8

Dryden skrev:

MickeA.com, du har inget konkret att visa upp vad gäller din lösning? Alltså, inte kod utan som slutanvändare.

Absolut! Har PMat dig.

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)