26. august 2004 - 17:29Der er
8 kommentarer og 1 løsning
Script søges til at lave links
hej
jeg har følgende script:
<script type="text/javascript"> function wrapPostSelection(s1, s2) { /* * Neither opera nor ns4.08 is supported since * they clear the selection when you press a form button! */ if (document.selection) { /* * Internet Explorer. Tested in 5.0, 5.5 and 6.0 * Kinda broken... the function works even outside the text box! */ var sT = document.selection.createRange(); var sTxt = sT.text;
if(sTxt.length == 0) return;
sT.text = s1 + sTxt + s2;
} else if (document.getElementsByName) { /* * Mozilla and relatives support the wonderful HTMLTextAreaElement.selection(Start|End) */ o = document.getElementsByName('indhold')[0]; if (!isNaN(o.selectionStart)) { if (o.selectionStart == o.selectionEnd) return;
var text = o.value; text = text.substring(0, o.selectionStart) + s1 + text.substring(o.selectionStart, o.selectionEnd) + s2 + text.substr(o.selectionEnd);
o.value = text; } } }
function makeBold() { wrapPostSelection('[B]', '[/B]'); }
function makeItalic() { wrapPostSelection('[I]', '[/I]'); }
function makeLink() { wrapPostSelection('[L]', '[/L]'); } </script>
Principielt skal du jo lave det i dit serverside sprog, men hvis du f.eks. bruger en regexp er den stort set det samme, som en lavet i javascript, som ca vil se sådan ud:
var txt = "[L]http://www.yahoo.com[/L]" var reg = /\[L\]([^\[]*)\[\/L\]/ig; var nytxt = txt.replace(reg,"<a href='$1' target='_blank'>$1</a>");
alert(nytxt);
-- den er dog ikke bearbejdet for at få et andet ord som linktekst, men kunne f.eks. gøres sådan:
var txt = "[L test=Yahoo]http://www.yahoo.com/[/L]"; var reg = /\[L test=([^\]]*)\]([^\[]*)\[\/L\]/ig; var nytxt = txt.replace(reg,"<a href='$2' target='_blank'>$1</a>"); alert(nytxt);
-- hvordan det så lige ser ud i det serverside sprog, du bruger er lidt med forskel, men de fleste har metoderne implementeret som native, og ikke som i javascript som metoder ...
Til gengæld er selve RegExp'en meget lidt forskellig !-)
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.