Avatar billede snebolle Nybegynder
09. september 2002 - 15:39 Der er 8 kommentarer og
2 løsninger

Makelinks funktioner virker ikke optimal.

Hej,
Jeg er ved at få lavet en makelinks funktion som automatisk skal lave uri om til links i mit forum. Men så i kan se på http://www.2access.dk/nyt/itforum/viewmsg.asp?id=428&ForumID=5 så kan det ikke rigtig finde ud af at gøre det rigtig :(

Her kan ses den kode jeg har brugt til at lave makelinks
http://www.2access.dk/nyt/kode.txt

Her er så hele koden viewmsg.asp så i kan se hvordan jeg hente mit forum fra databasen.
http://www.2access.dk/nyt/viewmsg.txt

Håber virkelig nogle kan hjælpe fordi jeg har prøvet alt men kan ikke få problemet løst.

Spørg endelig hvis der er ting i mangler at få oplyst.


Venlig hilsen
René Andersen
Avatar billede keysersoze Ekspert
09. september 2002 - 15:44 #1
hent dette i stedet;

http://www.netcoders.dk/sources.asp?mode=view_source&tech_id=1&id=859

det virker perfekt med den rettelse der står kommenteret nederst
Avatar billede snebolle Nybegynder
09. september 2002 - 16:09 #2
keysersoze mange tak. Dog ved jeg ikke helt hvad jeg skal skrive her.

Ved den anden kode jeg brugte skrev jeg
<% makelinks(strSvar) %>
Der hvor den skulle bruges.

Hvorfor kan jeg ikke også skrive <% autoHighlight(strSvar) %> ?? Hvad skal jeg ellers skrive ?
Avatar billede keysersoze Ekspert
09. september 2002 - 16:28 #3
det burde du da også kunne - et eksempel på min brug af den;

caseStr = replace(rs("tekst"),VbCrLf,"<br />")

    Response.write autoHighlight( caseStr )
Avatar billede eagleeye Praktikant
09. september 2002 - 18:04 #4
En fejl jeg kan se er den laver alt båre email og web adresser til web-adresser. Jeg har lavet denne function til en side jeg har.



Function LinkString(strInput)
Set objRegExpHTTP1 = New RegExp
Set objRegExpHTTP2 = New RegExp
Set objRegExpEMail = New RegExp

objRegExpHTTP1.Pattern = "(http|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}[\w\S]*)"
objRegExpEMail.Pattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,3}\S*)"

objRegExpHTTP1.Global = True
objRegExpHTTP2.Global = True
objRegExpEMail.Global = True

objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP2.IgnoreCase = True
objRegExpEMail.IgnoreCase = True

strOutput = objRegExpEMail.Replace(strInput, " <a href='mailto:$1'>$1</a> ")
strOutput = objRegExpHTTP1.Replace(strOutput, " <a href='$1$2' target='_blank'>$1$2</a> ")
strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank'>$2</a> ")

objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])('>)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(' target=)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(</a>)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2$1")

Set objRegExpHTTP2 = Nothing
set objRegExpHTTP1 = Nothing
Set objRegExpEMail = Nothing

LinkString = strOutput
End Function
Avatar billede keysersoze Ekspert
09. september 2002 - 18:36 #5
eagleeye >> det er jo lige netop derfor man skal kigge på den nederste kommentar ved det link jeg gav - der er forklaring og kode til hvordan eksemplet kan komme til at virke med emails :)
Avatar billede snebolle Nybegynder
12. september 2002 - 22:32 #6
eagleeye >> din virker ikke for godt hvis jeg laver en link og skriver tekst igen lige efter mv. Den skal virke i en forum hvis man aldrig kender positionen af hvor de links står.

keysersoze >> Jeg fået koden til at virker perfekt, men jeg kan bare ikke få indsæt mailto: koden så det virker. Den laver fejl på siden, hvis jeg indsætter kode :( Kan du hjælpe mig med det ?
Avatar billede keysersoze Ekspert
17. september 2002 - 18:11 #7
det er fordi der bruges nogle forkerte plinger og så'n - så prøv dette;

'Hvis det fundne mulige link har bestået alle "prøverne" skal det udskiftes med html tags
If noLink <> True then
If Lcase(Mid(lin,start,7)) = "http://" then
  LinkHtml = "<a href='" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'><font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
else
if instr(mid(lin,start,slut-start+1), "@") > 0 then ' hvis der er et @ i teksten, så gør den til en mailadresse...
    LinkHtml = "<a href='mailto:" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'><font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
else
    LinkHtml = "<a href='http://" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'><font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
end if
  '    LinkHtml = "<a href='http://" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'><font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
End If
  lin = Left(lin,start-1) & LinkHtml & right(lin,len(lin)-slut)
  t=t+1
End If
Avatar billede eagleeye Praktikant
22. september 2002 - 22:18 #8
det kommer an på hvad du mener med tekst lige efter??
kom med et eks så kan jeg måske hjælpe vidre..
Avatar billede snebolle Nybegynder
24. september 2002 - 16:45 #9
eagleeye >> jeg fik overstående kode til at virker så keysersoze for største delen af de point. Men jeg takker fordi du prøvede alligevel.
Avatar billede eagleeye Praktikant
24. september 2002 - 18:18 #10
Jamen det da bare i orden :)
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