Avatar billede Slettet bruger
10. februar 2004 - 19:11 Der er 17 kommentarer og
1 løsning

dobbeltquotes i asp+javascrip

Hej,

Jeg har en funktion til at maskere emailadresser med.

    nospams = "<script type=""text/Javascript"">"
    nospams = nospams & "var user = """ & strMailPart(0) & """;"
    nospams = nospams & "var domain = """& strMailPart(1) & """;"
    nospams = nospams & "var mail = user + ""&#64;"" + domain;"
    nospams = nospams & "var linkText = """ & strText & """;"
    nospams = nospams & "document.write(""<a class=autoLink href=\""&#109;&#97;&#105;&#108;&#116;&#111;&#58;""+mail+""\"">""+linkText+""</a>"");"
    nospams = nospams & "</script>"

hvordan kan jeg gøre så outputtet bliver <a class="autoLink" i stedet for <a class=autoLink ?
Avatar billede roenving Novice
10. februar 2004 - 19:15 #1
nospams = nospams & "document.write(""<a class=\42autoLink\42 href=\""&#109;&#97;&#105;&#108;&#116;&#111;&#58;""+mail+""\"">""+linkText+""</a>"");"
Avatar billede erikjacobsen Ekspert
10. februar 2004 - 19:15 #2
nospams = nospams & "document.write(""<a class=\""autoLink\"" href...osv
Avatar billede Slettet bruger
10. februar 2004 - 19:20 #3
nåja!
Avatar billede Slettet bruger
10. februar 2004 - 19:20 #4
smid et svar roenving?
Avatar billede roenving Novice
10. februar 2004 - 19:21 #5
Velbekomme '-)
Avatar billede Slettet bruger
10. februar 2004 - 19:26 #6
Hmm, validatoren brokker sig også over \ ? Hvad gør man for at få dem til at validere?
Avatar billede roenving Novice
10. februar 2004 - 19:34 #7
Brokker validatoren sig over: document.write("<a class=\42autoLink\42 href ... ?-)

Du kan jo også bruge apostroffer: document.write(""<a class='autoLink'
Avatar billede Slettet bruger
10. februar 2004 - 19:43 #8
Ja, den siger

Line 263, column 283: an attribute value must be a literal unless it contains only name characters (explain...).

  ...Email link";document.write("<a class=\42autoLink\42 href=\"&#109;&#97;&#105;&
                                          ^
Avatar billede erikjacobsen Ekspert
10. februar 2004 - 19:48 #9
En HTML-validator kan ikke checke indholdet af javascript. Du skal (skitse):

<script>
<!--
  ....
//-->
</script>
Avatar billede roenving Novice
10. februar 2004 - 19:49 #10
-- og du har selvfølgelig checket, at hele javascript-blokken er skrevet rigtigt ?-)
Avatar billede Slettet bruger
10. februar 2004 - 20:29 #11
Erik, dvs

    nospams = "<script type=""text/Javascript"">"
    nospams = nospams & "<!--"
    nospams = nospams & "var user = """ & strMailPart(0) & """;"
    nospams = nospams & "var domain = """& strMailPart(1) & """;"
    nospams = nospams & "var mail = user + ""&#64;"" + domain;"
    nospams = nospams & "var linkText = """ & strText & """;"
    nospams = nospams & "document.write(""<a class=\42autoLink\42 href=\""&#109;&#97;&#105;&#108;&#116;&#111;&#58;""+mail+""\"">""+linkText+""</a>"");"
    nospams = nospams & "//-->"
    nospams = nospams & "</script>"
?



Roenving:

>og du har selvfølgelig checket, at hele javascript-blokken er skrevet rigtigt ?-)

Den virker i hvertfald ?
Avatar billede erikjacobsen Ekspert
10. februar 2004 - 21:15 #12
Du skal sætte linieskift som skitseret - enkelte er muligvis overflødige, men
jeg kan ikke huske hvilke. Ellers virker det ikke i alle browsere.
Avatar billede Slettet bruger
12. februar 2004 - 16:57 #13
OK
Avatar billede Slettet bruger
16. februar 2004 - 20:46 #14
Er nu løbet ind i et problem i den forbindelse.
Jeg sætter &vbcrlf ind så det kommer til at stå således

<script>
<!--
  ....
//-->
</script>

men problemet er at jeg samtidig kører et script på samme databaseudtræk, som konvereterer vbcrlf til <br /> - hvad kan jeg gøre ved det?
Avatar billede erikjacobsen Ekspert
16. februar 2004 - 20:50 #15
Det lyder som et noget kompliceret system, du har fået lavet. Jeg kan ikke
helt se hvordan det hænger sammen.
Avatar billede Slettet bruger
16. februar 2004 - 20:55 #16
Det hænger sammen på denne måde

indholdetTemp = autoHighlight(rs("indhold")) '// Genererer links
indholdetTemp = Enter(xhtml(indholdetTemp)) '// Laver vbcrlf om til <br /> og konverterer dk bogst.

response.write(indholdetTemp)

og i autoHighlight køres nospam funktionen hvis den støder på en mail adresse.

i nospam har jeg jo tilføjet

    nospams = "<script type=""text/Javascript"">" & vbcrlf
    nospams = nospams & "<!--" & vbcrlf
    ...etc. etc.

hvilket vil sige at de vbcrlf der er i nospam scriptet, bliver lavet om til <br />
Avatar billede Slettet bruger
16. februar 2004 - 21:02 #17
Ahh - løste det ved at splitte det op

indholdetTemp = Enter(rs("indhold"))
indholdetTemp = autoHighlight(indholdetTemp)
indholdetTemp = LinkTekst(Cstr(indholdetTemp))
indholdetTemp = xhtml(indholdetTemp)

og tilføjede så

    if instr(Streng,"<br />") > 1 then
        Streng = Replace(Streng, "<br />", vbrclf)
    end if

i autohighlight
Avatar billede Slettet bruger
16. februar 2004 - 21:03 #18
det er godt nok lidt tungt, så hvis du har et andet forslag, skal du være velkommen :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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