Just nu i M3-nätverket
Gå till innehåll

Function Convert Links


kjell3

Rekommendera Poster

Jag använder mig av includen Function ConvertLinks till ett forum jag håller på med. Mitt problem är att när jag försöker lägga in target="_blank" som byts den fungerande länken till false

 

Vad gör jag för fel?

 

Skickar med koden utan target........

 

Function ConvertLinks(svalue)

 

svalue = ConvertLinksHREF(svalue, "http://")

svalue = ConvertLinksHREF(svalue, "ftp://")

svalue = ConvertLinksHREF(svalue, "news://")

svalue = ConvertLinksHREF(svalue, "mailto:")

 

ConvertLinks = svalue

End Function

 

Function ConvertLinksHREF(svalue, sHREF)

 

Dim iPos1, iPos2, sTemp, sTemp1, sTemp2

 

iPos2 = 1

iPos1 = InStr(1, svalue, sHREF, 1)

Do While iPos1 > 0

iPos2 = FindLinkEnd(svalue, iPos1 + Len(sHREF))

If iPos2 > 0 Then

sTemp1 = Mid(svalue, iPos1, iPos2 - iPos1)

sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & ">" & sTemp1 & "</A>"

svalue = Left(svalue, iPos1 - 1) & sTemp2 & Mid(svalue, iPos2)

iPos2 = iPos1 & Len(sTemp2) + 1

Else

iPos2 = iPos1 + Len(sHREF)

End If

iPos1 = InStr(iPos2, svalue, sHREF, 1)

Loop

 

ConvertLinksHREF = svalue

End Function

Function FindLinkEnd(svalue, iPos1)

Dim iPos2, i, iLen, iTempPos

Dim sValidChars

 

sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~-.@/"

iLen = iPos1 + Len(Mid(svalue, iPos1)) - 1

iPos2 = -1

For i = iPos1 To iLen

iTempPos = InStr(1, sValidChars, Mid(svalue, i, 1), 1)

If iTempPos = 0 Then

If i < iPos1 + 4 Then

iPos2 = -1

Else

iPos2 = i

End If

Exit For

End If

Next

If iPos2 = 0 Then

iPos2 = Len(svalue) + 1

End If

 

FindLinkEnd = iPos2

 

End Function

Länk till kommentar
Dela på andra webbplatser

Jag är inte säker på att jag förstår vad du menar, men om du bara vill lägga till target=_blank så....

 

sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & " target='_blank' ">" & sTemp1 & "</A>"

 

Möjligen kan du vilja byta ut ' mot "&CHR(34)&"

Länk till kommentar
Dela på andra webbplatser

Japp, det är bara en simpel target blank funktion jag är ute efter. Jag provade ditt tips men jag får bara syntaxfel, att det ska vara så j....... svårt.

 

Länk till kommentar
Dela på andra webbplatser

Nu har jag kommit så långt att jag med denna rad får fram där länken ska vara "sant" alltså istället för länken står det nu sant??

 

sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & " target='_blank' ">" & sTemp1 & </A>"

 

Men den fungerande länken försvann. Det jag är på ren svenska ute efter är att om någon hävisar i en text till en http:// länk i ett forum så ska den bli aktiv och kunna användas i ett frameset. Jag har sett att det fungerar så i detta forum, kanske man kan få hjälp från den som skapat detta forum???????

Länk till kommentar
Dela på andra webbplatser

Nej, jag förstår verkligen inte vad du menar:

 

>länken ska vara "sant"

 

Vad menar du med att en länk är "sann"??? Du skriver också att länken byts till false. Att den blir ogiltig, eller?

 

Du måste bättre beskriva exakt vad det är som händer när du kör din funktion. Var i koden blir det fel? Hur artar sig felet?

Länk till kommentar
Dela på andra webbplatser

Det som hände när jag lade till target i koden så byttes den fungerande länken till ordet sant. Men tack vare hjälp från en kunnig person så fick jag hjälp med den rätta koden.

Den ska vara:

sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & " target=" & Chr(34) & "_blank" & Chr(34) & ">" & sTemp1 & "</A>"

 

Tur att det finns dom som vet hur man gör för oss amatörer........

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...