webForumDet fria alternativet

Skriva ut textarea till javascript alert

9 svar · 464 visningar · startad av mattiasnordin

mattiasnordinMedlem sedan maj 20012 080 inlägg
#1

Går det att skriva ut innehållet ur en textarea (som sparas i en databas) i ett javascript alert ?

Antar att man måste erstätta tecken för att det ska fungera?!

<%=rs("history")%>
<% varHistory = rs("history") %>
<a href="#" OnClick="javascript:alert('<%=varHistory%>')"><img src="ico_history.gif" border=0></a>

Får här felmeddelandet...

Unterminatde string constant

:(

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du måste escapea eventuella apostrofer. Escape i javascript är backslash. Alltså:

<a href="#" onclick="alert('<%=replace(varHistory, "'", "\\'")%>')"><img src="ico_history.gif" border=0></a>

(du behöver inte ha "javascript:" i onclick-attributet).

nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Du måste ersätta:

' med \'
" med &amp;quot;
\ med \\
radbrytning (vbclfr eller något i asp tror jag) med <br /> allt med ett mellanslag

Det kan hända att asp automatiskt tolkar vissa av sakerna där som escape'ade men då får du se till att det som står till vänster verkligen ersätts med det som står till höger.

mattiasnordinMedlem sedan maj 20012 080 inlägg
#4

Denna funktion fungerar för mig. Hur ser den ut för er som kan ?

<% function funAlertFormat(string)
	if isnull(string) = true then string = " "	'Replace klarar inte tomma strängar
	string = replace(string, "'", "&rsquo;") 
	string = replace(string,vbcrlf,"\n") 
	funAlertFormat = string
end function %>

Men jag har fortfarande problem med tecken -> "

string = replace(string, """, "&quot;")

Fungerar inte för mig... Annars så ser det bra ut.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Kör en Server.HTMLEncode också då.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#6
<% function funAlertFormat(string)
	if isnull(string) = true then string = " "	'Replace klarar inte tomma strängar
	string = replace(string, "'", "&rsquo;") 
	string = replace(string,vbcrlf,"\n") 
	string = replace(string,"\","\\") 
	string = replace(string,""","&amp;quot;") 

	funAlertFormat = string
end function %>
mattiasnordinMedlem sedan maj 20012 080 inlägg
#7
<% function funAlertFormat(string)
	if isnull(string) = true then string = " "	'Replace klarar inte tomma strängar
	string = replace(string, "'", "&rsquo;") 
	string = replace(string,vbcrlf,"\n") 
	string = replace(string, """", "&quot;") 
	funAlertFormat = string
end function %>

Nu är det bara tecken -> \ som jag inte får använda. Kan man lösa det?

mattiasnordinMedlem sedan maj 20012 080 inlägg
#8

Snabba svar. Det uppskattas. Nu börjar det nog bli klart.

<% function funAlertFormat(string)
	if isnull(string) = true then string = " "	'Replace klarar inte tomma strängar
	string = replace(string, "'", "&rsquo;") 	'Hanterar tecken -> '
	string = replace(string, """", "&quot;") 	'Hanterar tecken -> "
	string = replace(string,"\","\\") 			'Hanterar tecken -> \
	string = replace(string,vbcrlf,"\n") 		'Hanterar tecken -> radbrytning
	funAlertFormat = string
end function %>

Problemet jag hade med \ var att raderna
string = replace(string,"\","\\")
string = replace(string,vbcrlf,"\n")
inte fick vara i omvänd ordning.

Tack för hjälpen alla!

nitro2k01Medlem sedan aug. 20039 342 inlägg
#9

En sak här: När du postade koden så ersattes & quot; med ". Se upp om du skulle hamna i situationen att du ska kopiera och klistra in koden. (Från ditt inlägg)

mattiasnordinMedlem sedan maj 20012 080 inlägg
#10

Oj... så sant.

FR33 P0RN (link above) Is the sexiest page around i've seen in a while ;)

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)