Moi.
Tämmösen koodin löysin netistä:
***tiedosto.js //bbcode insertion.. //define tags, to let the script know when a tag is open and needs to be closed var b = 2; var i = 2; var u = 2; var s = 2; var q = 2; var center = 2; var url = 2; var img = 2; var youtube = 2; //function to insert tags function tag(v, tagadd, newbut, tagclose, oldbut, name) { //our text box var txt = window.document.viesti.post; //ie handles selections differently if (document.selection) { //if text is selected, wrap the tags theSelection = document.selection.createRange().text; if (theSelection) { document.selection.createRange().text = tagadd + theSelection + tagclose; txt.focus(); theSelection = ''; } else{ //if there are no open tags of this type, open one if (eval(v)%2 == 0) { document.getElementById(name).value = newbut; txt.focus(); sel = document.selection.createRange(); sel.text = tagadd; } else { //otherwise, close the tag document.getElementById(name).value = oldbut; txt.focus(); sel = document.selection.createRange(); sel.text = tagclose; } } //add to the total number of tags, if the tag just added was an opening tag, the number will be odd and the script will know to close it next time eval(v+"++;"); } //firefox time =) else{ //if text is selected, wrap the tags if((txt.value).substring(txt.selectionStart, txt.selectionEnd) != ''){ txt.value = (txt.value).substring(0, txt.selectionStart) + tagadd + (txt.value).substring(txt.selectionStart, txt.selectionEnd) + tagclose + (txt.value).substring(txt.selectionEnd, txt.textLength); return; } else{ //if there are no open tags of this type, open one if (eval(v)%2 == 0) { document.getElementById(name).value = newbut; txt.value = (txt.value).substring(0, txt.selectionStart) + tagadd + (txt.value).substring(txt.selectionEnd, txt.textLength); txt.focus(); //otherwise, close the tag } else { document.getElementById(name).value = oldbut; txt.value = (txt.value).substring(0, txt.selectionStart) + tagclose + (txt.value).substring(txt.selectionEnd, txt.textLength); txt.focus(); } //same as with ie eval(v+"++;"); } } } //handles font size and color function font(bbopen, bbclose) { var txt = window.document.posting.post; //simply add it on to the end of the form txt.value += bbopen + bbclose; txt.focus(); return; } //a little help text line underneath the bbcode buttons detailing their syntax, et cetera. (phpbb style) bold_help = "Bold text: [b]text[/b]"; italic_help = "Italic text: [i]text[/i]"; underline_help = "Underline text: [u]text[/u]"; strikethrough_help = "Strikethrough: [s]text[/s]"; center_help = "Center Text: [center]text[/center]"; quote_help = "Quote text: [quote]text[/quote] or [quote=name]text[/quote]"; img_help = "Insert image: [img]http://image_url[/img]"; url_help = "Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url]"; youtube_help = "Embed Youtube Video: [youtube]http://youtube.com/watch?v=video_id[/youtube]"; fontcolor_help = "Font color: [color=red]text[/color] Tip: you can also use color=#FF0000"; fontsize_help = "Font size: [size=7]small text[/size]"; function helpline(help) { var helpbox = document.getElementById('helpbox'); helpbox.value = eval(help + "_help"); }
Tämä on siis BBcode toiminto. Tämä vaatii, että viesti nimisessä textareassa on värjätty jotain tekstiä jonka ympärille tämä sitten muodostaa halutut tagit.
<input type="button" class="button" value="Bold" id="bold" name="bold" onClick="tag('b', '[b]', 'Bold*', '[/b]', 'Bold', 'bold');">
Miten saisin tämän lisäämään tagit vaikka ei olisi mitään värjätty?
JS tiedostossa on noita määrittelyitä jossa sanotaan että lisätään tagit värjätyn tekstin ympärille. En vain tiedä, miten muutan sitä.
Eikö kukaan tiedä? :/ Tarvitsisin tätä nopeasti. :s
Jos et sattunut huomaamaan, se kyllä lisää jo nyt tagit: ensimmäisellä klikkauksella avaustagin ja toisella sulkutagin.
Kysytäänpä toisin, miten haluat tuon toimivan? Klikkaamalla nappia, jolloin kenttään ilmaantuu maagisesti esim <ul></ul> tagit? Silloin vaikka näin sovella jos mahdollista.
function insertTag(tagi, id){ vanhaSisalto = document.getElementById(id).value; uusiSisalto = vanhaSisalto + ' ' + '<' + tagi + '>' + ' ' + '</' + tagi + '>'; document.getElementById(id).value = uusiSisalto; }
EDIT: Taitaa tuo lisätä sen itse asiassa jo nyttenkin, joten turha pätkä.
En tiedä miten saatte nämä lisäämään yhdestä klickauksesta, mutta minulla ei toimi. :o
Ihan suoraan kopioin tuon koodin ja nappulan ja lisäsin formin:
<form name="viesti"><textarea name="post"></textarea></form>
"Eikö kukaan tiedä? Tarvitsen tämän nythetimulleilmaiseksi!" ei ole oikea lähtökohta. Ohjelmointiputkassa on oikein hyvä JS-opas, voisit yrittää senkin kanssa kahlata asiassa eteenpäin.
MIB kirjoitti:
En tiedä miten saatte nämä lisäämään yhdestä klickauksesta, mutta minulla ei toimi. :o
Toi meikäläisen pätkä ainakin lisää tuon annetun tagin ja lopputagin sille ihan hienosti. Nappulan onClick eventtiin vain kutsu tagin nimellä ja tekstiarean id:ä, niin toimii ihan hienosti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.