WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   javascript-problem (https://www.wn.se/forum/showthread.php?t=13229)

Kristallrummet 2006-03-29 21:54

Har ett problem som jag skulle behöva hjälp med. När kunderna har lagt en produkt i kundvagnen använder jag koden nedan för Tillbaka-knappen, detta gör att kunden hamnar högst upp på sidan som han var på tidigare istället för att komma tillbaka i den höjd han har scrollat ner tidigare. Skulle kunden använda webbläsarens Tillbaka-knapp kommer kunden i rätt höjd på sidan och ser produkterna bredvid den han klickade på. Dock fungerar inte webbläsarens Tillbaka-knapp om kunden väljer att lägga produkten i kundvagnen. Därför vill jag att kunderna använder "min" Tillbaka-knapp, dock har kunder påpekat att det är jobbigt att hamna högst upp på sidan hela tiden.

Hoppas att ni förstår mitt problem och att någon kan hjälpa mig.

Kan jag förändra mitt javascript så att det kommer ihåg i vilken höjd kunde var på sidan han kom ifrån?

Kod:

function goBack()
{
 ref = document['re'+'ferrer'];
 if (ref && ref != window.parent.document.location) {
  document.location = ref;
 }
 else {
  window.history.go(-1);
 }


zoran 2006-03-29 23:35

Citat:

Originally posted by Kristallrummet@Mar 29 2006, 21:54
Har ett problem som jag skulle behöva hjälp med. När kunderna har lagt en produkt i kundvagnen använder jag koden nedan för Tillbaka-knappen, detta gör att kunden hamnar högst upp på sidan som han var på tidigare istället för att komma tillbaka i den höjd han har scrollat ner tidigare. Skulle kunden använda webbläsarens Tillbaka-knapp kommer kunden i rätt höjd på sidan och ser produkterna bredvid den han klickade på. Dock fungerar inte webbläsarens Tillbaka-knapp om kunden väljer att lägga produkten i kundvagnen. Därför vill jag att kunderna använder "min" Tillbaka-knapp, dock har kunder påpekat att det är jobbigt att hamna högst upp på sidan hela tiden.

Hoppas att ni förstår mitt problem och att någon kan hjälpa mig.

Kan jag förändra mitt javascript så att det kommer ihåg i vilken höjd kunde var på sidan han kom ifrån?

Kod:

function goBack()
{
 ref = document['re'+'ferrer'];
 if (ref && ref != window.parent.document.location) {
  document.location = ref;
 }
 else {
  window.history.go(-1);
 }


Jag själv, personligen, tycker att om "webbläsarens tillbaka knapp fungerar inte" är i självaste verket "Jag har tagit sönder webbläsarens tillbaka knapp".

En förklaring. Att kunna navigera en site är viktigt för en kund. För att kunden alltid ska veta var den finns, hur saker fungerar, är det viktigt att de inlärda mönstren alltid fungerar. Dvs, en kund vet alltid att klick på pilen bakåt, ALLTID tar en bakåt. Ifall du kodat din sida att den funktionaliteten inte finns längre, är det inte bra. Det skapar förvirring. Sammanfattat, ge fan i att ta sönder bakåtknappen. :)

Ja, hur ska du då göra "rätt", utan att ta sönder den?

Jag kan inte svara riktigt på din fråga eftersom jag inte känner till ditt system och hur det är byggt.

I MITT system, så gör jag följande förfarande när jag vill lägga en produkt i varukorgen:

"lägg till"-knappen är en vanlig länk, som pekar exempelvis på /basket/?action=add&pid=23&count=1&return=<produktsidan jag är på nu>
När användaren klickar på den, skickas en GET request till /basket/ som läser url-raden.
När den lagt till produkten i varukorgen, tittar den på return-parametern. Sedan skickar den en 302, med Location: <produktsidan jag är på>.
Det som händer är att användaren automatiskt redirectas tillbaka till samma sida den kom ifrån, och notifieras att produkten är i varukorgen (varukorgen blinkar till eller gör något annat).

Klickar användaren då på bakåtknappen, så kommer det hända det som den förväntas, dvs gå tillbaka ett steg till föregående sida. (man kan säga att 302 redirects hamnar inte i history-listan).

Nästa steg är ju att använda ajax för att lägga produkten i varukorgen, vilket inte heller tar sönder bakåtknappen.

Kristallrummet 2006-03-29 23:58

Jo, visst är det så att jag har tagit sönder webbläsarens tillbaka-knapp. Detta beror på min okunskap att lösa det på något annat sätt. Det är nog dags att jag tittar på en lösning där istället. Men om det är någon som har svar på min fråga så uppskattas det också.

zoran 2006-03-30 07:10

Citat:

Originally posted by Kristallrummet@Mar 29 2006, 23:58
Jo, visst är det så att jag har tagit sönder webbläsarens tillbaka-knapp. Detta beror på min okunskap att lösa det på något annat sätt. Det är nog dags att jag tittar på en lösning där istället. Men om det är någon som har svar på min fråga så uppskattas det också.
Mitt svar kommer ge dig lösning på ditt problem och det är lättare att implementera än den lösningen som du har tänkt dig.

bivald 2006-03-30 13:44

Citat:

Originally posted by Kristallrummet@Mar 29 2006, 21:54
Nästa steg är ju att använda ajax för att lägga produkten i varukorgen, vilket inte heller tar sönder bakåtknappen.
Kom ihåg att inte alla webbläsare stödjer JS dock och att man bör kunna surfa på en sida utan javascript aktiverat. Kan man inte det kan t.ex. googlebotten slå slint...

zoran 2006-03-30 19:04

Citat:

Ursprungligen postat av bivald
Citat:

Ursprungligen postat av Kristallrummet
Nästa steg är ju att använda ajax för att lägga produkten i varukorgen, vilket inte heller tar sönder bakåtknappen.

Kom ihåg att inte alla webbläsare stödjer JS dock och att man bör kunna surfa på en sida utan javascript aktiverat. Kan man inte det kan t.ex. googlebotten slå slint...

Visst, men googlebotten behöver inte kunna lägga produkter i varukorgen. Gör man endast det med javascript/ajax så är det knappast någon fara. Sen är det också så att det är lätt att ha en fallback för klienter utan ajaxstöd.

Däremot skulle det aldrig falla mig in att använda renodlade javascriptmenyer.

Lindahl 2006-03-30 20:35

Google kan inte posta vanliga formulär än så länge (som tur är). Kör med ett helt vanligt formulär som postar till editcart.pl (till skillnad från postning till cart.pl som du har i dagsläget). Sedan har jag själv gjort som så att varje gång editcart.pl laddas så laddas cart.pl om med javascript (parent.cart.location.reload(true);). På detta sättet behåller bakåtknappen hela tiden sin funktionalitet.
Det blir då editcart.pl i ditt fall som innehåller kod för att lägga till objekt till kundvagnen, och cart.pl är ett ganska dumt script som bara visar vad som redan finns i kundvagnen.


Alla tider är GMT +2. Klockan är nu 00:49.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson