Avatar billede theselfimages Nybegynder
06. oktober 2003 - 13:53 Der er 14 kommentarer og
2 løsninger

Problem med ASP baseret javascript:history.go funktionen!

Spørgsmål henvendt til: Tblaster og andre
baseret på: http://www.eksperten.dk/spm/392666

Jeg har forsøgt på den side at gøre brug af: href="java script:history.go(-<%=Klik%>);" funktionen fra tidligere svar på spørgsmål.

Det virker delvist. Der tælles/registreres antal "Klik" der foretages, når der bladres frem/tilbage mellem billederne, men når "BACK" knap (java script:history.go) benyttes, da går den KUN et step tilbage ad gangen og IKKE det antal som "Klik" funktionen har optalt. Hvorfor?

(Jeg har pillet det mest unødvendige UD af nedenstående kode for siden. Derfor forekommer der 'huller')


<%Option Explicit%>
<%
'Declare variables (for speed)
Dim i, language, page, category, altLanguage, altImage, altMending, altCases, altKontakt, altBack, altFront, altPrint, Forward, Back
Dim Conn, rs, rs2, DSN, strSQL
Dim NewsFound, noNewsString
Dim ReadMoreText
Dim pageHistory, pageLevel, categoryHeading
Dim id
Dim Klik

'Set session timeout (in minutes)
Session.TimeOut = 40

'Get language from querystring (URL)
language = lcase(Request.QueryString("language"))
page = lcase(Request.QueryString("page"))
category = lcase(Request.QueryString("category"))
pageHistory = lcase(Request.QueryString("pagehistory"))
pageLevel = lcase(Request.QueryString("pageLevel"))
Session("language") = language
Session("page") = page
Session("category") = category
Session("pagehistory") = pagehistory
Session("pagelevel") = pagelevel
id = lcase(Request.QueryString("id"))
Klik = lcase(Request.QueryString("Klik"))


If Request.QueryString("Klik") = "" Then
Klik = 1
End If
If request.querystring("Klik") <> "" Then
Klik = Request.QueryString("Klik") + 1
End If
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Mending</title>
<meta NAME="Title" CONTENT="Mending">
<link rel="stylesheet" href="stylesheets/pagestyle.css">
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">

<!-- START: Image Slide Script -->
<script language="JavaScript" type="text/javascript">
<!--
    function PageQuery(q) {
        if(q.length > 1) this.q = q.substring(1, q.length);
        else this.q = null;
        this.keyValuePairs = new Array();

        if(q) {
            for(var i=0; i < this.q.split("&").length; i++) {
                this.keyValuePairs[i] = this.q.split("&")[i];
            }
        }

        this.getKeyValuePairs = function() { return this.keyValuePairs; }
        this.getValue = function(s) {
            for(var j=0; j < this.keyValuePairs.length; j++) {
                if(this.keyValuePairs[j].split("=")[0] == s)
                    return this.keyValuePairs[j].split("=")[1];
            }   
            return false;
        }

        this.getParameters = function() {
            var a = new Array(this.getLength());
            for(var j=0; j < this.keyValuePairs.length; j++) {
                a[j] = this.keyValuePairs[j].split("=")[0];
            }
            return a;
        }

        this.getLength = function() { return this.keyValuePairs.length; }
    }

    function queryString(key){
        var page = new PageQuery(window.location.search);
        return unescape(page.getValue(key));
    }

    function displayItem(key){
        if(queryString(key)=='false') {
            return (1);
        }else{
            return (queryString(key));
        }
    }
//-->
</script>
</head>

<body scroll="no" bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" <%=rs("onLoad")%>>

<table border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="100%">
  <tr>
    <td align="center">
    <table border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111" width="770">
      <tr>
        <td valign="top"><img border="0" src="images/adjust.gif" width="10" height="1"></td>
        <td valign="bottom"><a href="#" onfocus="this.blur();" onMouseOver="ms('img1', 'on')" onMouseOut="ms('img1', 'off')" onClick="ms('img1', 'fix');location='page.asp?category=2&page=6&pageLevel=0&language=<%=language%>'; return false;"><img name="img1" src="images/choose/dk/mending.gif" alt="<%=altMending%>" border="0"></a><img border="0" src="images/adjust.gif" width="10" height="1"><a href="#" onfocus="this.blur();" onMouseOver="ms('img2', 'on')" onMouseOut="ms('img2', 'off')" onClick="ms('img2', 'fix');location='page.asp?category=3&page=201&language=<%=language%>&pagehistory=1;0,100;3&pageLevel=3'; return false;"><img name="img2" src="images/choose/dk/cases.gif" alt="<%=altCases%>" border="0"></a><img border="0" src="images/adjust.gif" width="10" height="1"><a href="#" onfocus="this.blur();" onMouseOver="ms('img3', 'on')" onMouseOut="ms('img3', 'off')" onClick="ms('img3', 'fix');location='page.asp?category=4&page=7&language=<%=language%>'; return false;"><img name="img3" src="images/choose/<%=language%>/kontakt.gif" alt="<%=altKontakt%>" border="0"></a><br>
        <img border="0" src="images/adjust.gif" width="261" height="5"></td>
        <td valign="bottom"><a href="page.asp?language=<%=altImage%>&page=<%=page%>&category=<%=category%>&pagehistory=<%=pagehistory%>&pageLevel=<%=pageLevel%>" onfocus="this.blur();"><img src="images/language.gif" alt="<%=altLanguage%>" border="0"></a><img border="0" src="images/adjust.gif" width="20" height="1"><a href="java script:history.back(-<%=Klik%>);" onfocus="this.blur();"><img border="0" src="images/back.gif" alt="<%=altBack%>"></a><img border="0" src="images/adjust.gif" width="8" height="1"><a href="front.asp?language=<%=language%>" onfocus="this.blur();"><img border="0" src="images/front.gif" alt="<%=altFront%>"></a><img border="0" src="images/adjust.gif" width="8" height="1"><a href="print.asp?category=<%=category%>&page=<%=page%>&language=<%=language%>" onfocus="this.blur( )" onclick="PopupWindow(this.href,'PictureViewer','790','525','yes'); return false;"><img border="0" src="images/print.gif" alt="<%=altPrint%>"></a><br>
        <img border="0" src="images/adjust.gif" width="259" height="4"></td>
        <td valign="top" colspan="2" width="230"><img border="0" src="images/adjust.gif" width="13" height="1"><img border="0" src="images/logo.gif"></td>
        <td valign="top"><img border="0" src="images/adjust.gif" width="10" height="1"></td>
      </tr>
      <tr>
        <td valign="top" colspan="6">
        <img border="0" src="images/box.gif"><br>
        <img border="0" src="images/adjust.gif" width="1" height="10"></td>
      </tr>
      <tr>
        <td valign="top"><img border="0" src="images/adjust.gif" width="10" height="1"></td>
        <td valign="top" colspan="2">
       
        <span class="levelMenu">
        <span class="menuheadline">
        <%
        strSQL = "SELECT name " & _
        "FROM category " & _
        "WHERE categoryID = " & category & _
        " AND language = '" & language & "'"
        %>                   
        </span>

<!-- Menupunkter -->
        <%               
        HandlePageHistory
        CreateMenu category, language, 0               
        %>               
        &nbsp;</span></td>
               
        <td valign="top" background="images/space.gif"><img border="0" src="images/adjust.gif" width="40" height="60"></td>
        <td valign="top" colspan="2">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top"><img border="0" src="images/adjust.gif" height="1" width="10"></td>
        <td valign="top" colspan="2" align="right"><img border="0" src="images/adjust.gif" height="1" width="520"><br>
        <span class="pagetekst">
       
        <%If rs("ImagesShowMore") <> "" then%>               
        <% rs.MoveFirst %>
        <script language="JavaScript" type="text/javascript">
        <!--
        var number = 0;
        number = displayItem("id");
        document.write("<img src='<%=rs("Image")%>" + number + ".jpg'>");   
        document.write("<br><br>");
   
        if (number > 1) {
        document.write("<a href=\"page.asp?language=<%=language%>&category=<%=category%>&page=<%=page%>&pagehistory=<%=pagehistory%>&pagelevel=<%=pagelevel%>&Klik=<%=Klik%>&id="+(number-1)+"\"><img border='0' src='images/arrowback.gif' width='4' height='10'></a>");
        }
        document.write(" ");
   
        if (number < (<%=rs("ImagesShowMore")%>)) {   
        document.write("<a href=\"page.asp?language=<%=language%>&category=<%=category%>&page=<%=page%>&pagehistory=<%=pagehistory%>&pagelevel=<%=pagelevel%>&Klik=<%=Klik%>&id="+(number-0+1)+"\"><img border='0' src='images/adjust.gif' width='5' height='10'><img border='0' src='images/arrowforward.gif' width='4' height='10'></a>");
        }
        //-->
        </script>
        <%Else%>
        <%=rs("Image")%>
        <%End If%></span></td>
       
        <td valign="top" background="images/space.gif"><img border="0" src="images/adjust.gif" width="40" height="400"></td>
        <td valign="top"><img border="0" src="images/adjust.gif" height="1" width="190"><br>

                  <span class="pagetekst"><span class="heading">
                  <%
                  if rs("isNews") then
                    response.write rs("news")
                  else
                    response.write rs("headline")
                  end if
                  %>
                  </span>
                 
                  <%If rs("Launch") <> "" Then%>
                  <% rs.MoveFirst %>
                  <br>
                  <%=rs("Launch")%>
                  <br>
                  <br>
                  <%Else%>
                  <br>
                  <br>
                  <%End If%> <%=rs("content")%>
                  <br>

                  <%
                  if request.QueryString("app") = "mail" then
                    if Session("mailstatus") = "error" then
                      response.Write (Session("mailmessage"))
                    elseif Session("mailstatus") = "ok" then
                      response.Write (Session("mailmessage"))
                    end If
                  end if
                  %>
                  </span></td>
       
                <%
                rs.movenext
                Wend
                %>
                       
        <td valign="top"><img border="0" src="images/adjust.gif" height="1" width="10"></td>
      </tr>
      </table>
    </td>
  </tr>
</table>
<% ' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
</body>
</html>
Avatar billede tblaster Nybegynder
06. oktober 2003 - 14:28 #1
Hvis jeg forstår dig rigtigt så bliver der fint talt de antal kliks op som der bliver fortaget når du bladre frem og tilbage.

Men når du trykker på tilbage knappen så går den kun en gang tilbage som om at følgende benyttes:
java script:history.back()

Hvis overstående er korret så skal jeg bede dig sende koden hvor du har din tilbage knap.

Prøv evt at smide følgende i bunden eller toppen af din side og se om den virker på din side:

<%
Response.write "<a href='java script:history.go(" & Klik & ");'> Tilbage </a>
%>
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 14:51 #2
Du har forstået det HELT korrekt..

Jeg får denne tilbage når jeg indsætter det du skriver:

Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/page.asp, line 460

Response.write "<a href='java script:history.go(" & Klik & ");'> Tilbage </a>
----------------------------------------------------------------------------^
Avatar billede nidyahou Praktikant
06. oktober 2003 - 14:59 #3
jeg har den samme fejl, jeg kan ikke forklare det men gør sådan:
"<a href=java script:history.go(" & Klik & ")> Tilbage </a>
Avatar billede nidyahou Praktikant
06. oktober 2003 - 15:10 #4
at den er konstant mener at den ikke ender jeg retter lige:

"<a href=java script:history.go(" & Klik & ")> Tilbage </a>" '<< læg mærke til det nye "
Avatar billede tblaster Nybegynder
06. oktober 2003 - 15:51 #5
Yep ... nidyahou har fundet fejlen ... jeg glemte at lukke min response.write ... du skal rette det til det han skriver altså:
<%
Response.write "<a href='java script:history.go(" & Klik & ");'> Tilbage </a>"
%>
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 16:13 #6
Hmm.. nu virker siden, men der SKER intet når jeg klikker på tilbage linket, selv om den i ( ) parentesen fint tæller antal klik.
Avatar billede nidyahou Praktikant
06. oktober 2003 - 16:15 #7
ved klik = "" mangler der også -1 istedet for 1
Avatar billede nidyahou Praktikant
06. oktober 2003 - 16:22 #8
jeg forstår ikke helt funktionen.....
Response.write "<a href=java script:history.go(-1)>tilbage</a>"
det gir jo tilbage funktionen egenskaben tilbage, jeg forstår ikke hvad du laver med det der andet
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 16:23 #9
Hvor siger?
Avatar billede tblaster Nybegynder
06. oktober 2003 - 16:23 #10
igen har nidyahou ret ... jeg er tåger for meget rundt i det for tiden ... tror jeg skal tage en pause ...

<%
Response.write "<a href='java script:history.go(-" & Klik & ");'> Tilbage </a>"
%>
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 16:26 #11
Sådan drengene... I er for cool..
Alt virker perfekt nu! ;)

Hurra!
Hvem skal ha' point? Vil i dele?

Tusind tak for hjælpen..
Lars
Avatar billede nidyahou Praktikant
06. oktober 2003 - 16:30 #12
2talt ligeglad vil blaster have pointene er det hans
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 16:33 #13
Men hvordan skriver jeg det lige ind i denne tråd?

<a href="java script:history.back(-1);" onfocus="this.blur();"><img border="0" src="images/back.gif" alt="<%=altBack%>"></a>
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 16:34 #14
tblaster => Post et svar hvis du vil ha' point.
            Eller tak nej!
Avatar billede tblaster Nybegynder
06. oktober 2003 - 17:00 #15
<a href="java script:history.back(-<%=Klik%>);" onfocus="this.blur();"><img border="0" src="images/back.gif" alt="<%=altBack%>"></a>

Nindyahou ... smid et svar så kan vi dele dem!
Avatar billede theselfimages Nybegynder
06. oktober 2003 - 17:18 #16
Takker...
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
Kurser inden for grundlæggende programmering

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