---
title: "Parameter till funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/67119-parameter-till-funktion"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Jaar"
published: "2003-02-04T08:41:43.000Z"
updated: "2003-02-05T13:48:03.000Z"
replies: 6
views: 278
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/67119-parameter-till-funktion"
---

# Parameter till funktion

## #1 — Jaar, 2003-02-04T08:41Z

Jag försöker skicka en parameter till en funktion, och den parametern innehåller ett + tecken

```
<a href="javascript: searchTrip('12345+67890')">
```

Strängen genereras från en JSP sida (mindre viktigt) och för att det inte ska bli ett ' ' så trodde jag var tvungen att översätta det
kör en URLkodare (som tar bort konstinga tecken) .. .tror + blir %2 bl.a.

```
<a href="javascript: searchTrip('12345%267890')">
```

Detta är ju bra. Men webläsaren (IE, inte NS) översätter ju %2 när han skickar det till funktionen, så tas det emot som ett plus igen... 

```
function searchTrip(rowid)
{
  eval("document.location='nextStep.jsp?searchrow="+rowid+"'");
}
```

Det betyder att när jag skickar användaren till nextStep.jsp så kommer searchrow=12345 67890, alltså ett mellanrum (+ i URLen blir ju det), och jag kommer få fel.

Om jag gör en IE specifik grej

```
<td onclick="searchTrip('12345%267890')">tryck här</td>
```

Så kommer det fungera helt perfekt. Hur rättar jag till denna "bugg" så att länken inte blir med mellanslag?

Permalänk: https://www.webforum.nu/p/67119

## #2 — Jojoxx, 2003-02-04T12:02Z

Du behöver bara escape'a data som skall skickas via url'en (GET), ex;

location.href="nextStep.jsp?searchrow="+escape(rowid);

Om du från JSP-sidan genererar ett "+"-tecken så är det inga problem för JavaScript;

alert("1+2=3");

Kan alltså outputen från jsp-sidan vara, och det kommer att fungera. Det du får tänka på är att ersätta sträng-terminering och ev. radbrytningar;

alert("Mitt namn är Karl \\"Kalle\\" Karlsson\\nMin titel är murare");

Permalänk: https://www.webforum.nu/p/940482

## #3 — Jaar, 2003-02-04T13:38Z

Jag tycker inte det verkar fungera...
Här kommer en testkod.

```
Filen test.asp

<html>
<head>
<title>Testar</title>
<script language="JavaScript">
function test2(text)
{
  location.href = 'test.asp?text=' + escape(text);

}

function test(text)
{
  counter = "";
  for(i=0; i < text.length; i++)
  {
    if(text.charAt(i) == '+')
    {
      counter = counter + "%2B";   
    }
    else 
      counter = counter + text.charAt(i);
  }
  alert(counter);
  location.assign('test.asp?text='+text);
}
</script>
</head>
<body>
<%=request("text")%><br>
<a href="javascript: test2('12345%2B67890')">testar</a>
</body>
</html>
```

Funktionen test gör det jag vill ska göras (och jag använder den temporärt), men jag vill att det ska skickas som %2B...
Trycker man på länken vill jag alltså att det ska stå test.asp?test=12345%2B67890

Det är det som kommer från JSP scriptet och det är så jag vill skicka det, men IE gör om det så att ett + tecken skickas in...

Permalänk: https://www.webforum.nu/p/940524

## #4 — Jojoxx, 2003-02-04T20:12Z

Vill du att adress-raden skall lyda "test.asp?test=12345%2B67890" skall du inte använda escape. Vill du att svaret från \<%=request("text")%\> skall lyda "12345%2B67890" skall du använda escape. "%2B" är nämligen "+" när du använder GET, "+" å andra sidan är mellanslag. Logiskt va? :)

Permalänk: https://www.webforum.nu/p/940844

## #5 — Jaar, 2003-02-05T08:00Z

Detta har jag förstått (det med plus o mellanslag)

Det jag inte förstår är hur jag får följande kod att skicka iväg användaren till sidan "test.asp?test=12345%2B67890"

```
Filen test.asp

<%
myValue = "12345%2B67890"
%>
<html>
<head>
<title>Testar</title>
<script language="JavaScript">
function test(text)
{
  location.href = 'test.asp?text=' + text;
}
</script>
</head>
<body>
<%=request("text")%><br>
<a href="java script: test('<%=myValue%>')">testar</a>
</body>
</html>
```

Denna kod för att göra det "övertydligt"...
Jag har ett värde med ett plustecken (+) i variabeln **myValue**, och jag vill att efter man tryckt på länken, ska hamna på sidan test.asp och variabeln test ska skrivas ut som "12345+67890"

Permalänk: https://www.webforum.nu/p/941028

## #6 — Peter S, 2003-02-05T13:29Z

Om jag har förstått dig rätt, skulle du kunna göra så här:

```
...
location.href = 'test.asp?text=' + text.replace(/[+]/g, "%2B");
...
```

 :)

Permalänk: https://www.webforum.nu/p/941301

## #7 — Jaar, 2003-02-05T13:48Z

Jupp, det var en kortare variant av vad jag själv kom fram till (se mitt andra inlägg och funktionen test() )
Det verkar som om detta är det enda sättet att göra det på. Tycker det är konstigt eftersom det inte är några som helst problem i NS 4.x att göra det.

Tack så mycket för den hjälp jag fått..

Permalänk: https://www.webforum.nu/p/941309

---

Tråden på webben: https://www.webforum.nu/amne/javascript/67119-parameter-till-funktion
