HighDots Forums  

Re: bbcode ? einfacher!

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Re: bbcode ? einfacher! in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Frank Schenk
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-14-2004 , 10:52 AM






Thomas Kellner wrote:

Quote:
Hallo Ng,

ihr habt doch sicher schon mal was BBCode gehört, zur Zeit habe ich mich
damit beschäftigt. Mit JavaScript möchte ich nun die
Formatierungsmöglichkeiten für meinen Comments-Bereich nutzen. (1. Frage)
Wie kann ich ein Textarea den Code für 'fett' einfügen. Das Textarea
heißt 'Message'. (2. Frage) Wie kann man offene Tags feststellen und diese
gleich schließen. Jedoch sollte der geschlossene Tag gleich nach dem
Formatierungsfeld positioniert werden, das heißt der [/b] soll hinter [b]
geschlossen werden und nicht erst nach einem anderen geöffneten BB-Tag, das
heißt dies soll nicht auftreten: ....[i]...

de.comp.lang.javascript existiert


Gruss, Frank



F^2 de.comp.lang.javascript gesetzt


Reply With Quote
  #2  
Old   
Thomas Kellner
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 06:05 AM






Quote:
ihr habt doch sicher schon mal was BBCode gehört, zur Zeit habe ich mich
damit beschäftigt. Mit JavaScript möchte ich nun die
Formatierungsmöglichkeiten für meinen Comments-Bereich nutzen. (1. Frage)
Wie kann ich ein Textarea den Code für 'fett' einfügen. Das
Textarea heißt 'Message'. (2. Frage) Wie kann man offene Tags feststellen
und diese gleich schließen. Jedoch sollte der geschlossene Tag gleich
nach dem Formatierungsfeld positioniert werden, das heißt der [/b] soll
hinter [b] geschlossen werden und nicht erst nach einem anderen
geöffneten BB-Tag, das heißt dies soll nicht auftreten: ....[i]...
Ich habe mich heute mal selber hingesetzt und habe das vereinfachte Script
für den BBCode geschrieben,
jier könnt ihr es einsehen. Dies läuft eingentlich immer nach gleichem
Prinzip aber

function tag_insert(tag)
{
if(tag=="comment")
{
comment_id=prompt("Bitte um Eingabe der Comment-ID.","");
if(comment_id!="" && comment_id!=null)
{
comment_name=prompt("Bitte um Eingabe des Namens für den
Link.","");
if(comment_name!="" & comment_name!=null)
window.document.posting.elements["Message"].value
+="[comment=\""+comment_id+"\"]"+comment_name+"[/comment]";
}
}
}

Nun habe ich noch eine Frage, wie kann man es verwirklichen, wenn man einen
Textteil markiert hat, die Tags um die Markierung angeordnet werden
Bsp: 'ff' >> 'ff'.

ciao.




Reply With Quote
  #3  
Old   
Thomas Kellner
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 06:13 AM



PS:
Quote:
function tag_insert(tag)
{
if(tag=="comment")
{
comment_id=prompt("Bitte um Eingabe der Comment-ID.","");
if(comment_id!="" && comment_id!=null)
{
comment_name=prompt("Bitte um Eingabe des Namens für den
Link.","");
if(comment_name!="" & comment_name!=null)
window.document.posting.elements["Message"].value
+="[comment=\""+comment_id+"\"]"+comment_name+"[/comment]";
}
}
}
a href="javascript:tag_insert('comment');">Comment-ID</a

Denkt ihr das eine JavaScript-Eingabeaufforderung erforderlich ist bei
BBCode?




Reply With Quote
  #4  
Old   
Thomas Kellner
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 10:30 AM



"Thomas Kellner"
Quote:
Nun habe ich noch eine Frage, wie kann man es verwirklichen, wenn man
einen Textteil markiert hat, die Tags um die Markierung angeordnet werden
Bsp: 'ff' >> 'ff'.
ich habe da etwas gefunden, funktioniert aber leider nur im IE. weiß jemand
wie man das im Mozilla + Netscape zum Laufen kriegt.
text_selection=window.document.selection.createRan ge();
if(text_selection.text)

{

text_selection.text="["+tag+"]"+text_selection.text+"[/"+tag+"]";

}




Reply With Quote
  #5  
Old   
Dietmar Meier
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 11:05 AM



Thomas Kellner <kellner.th (AT) gmx (DOT) net> typed:

Quote:
ich habe da etwas gefunden, funktioniert aber leider nur im IE. weiß
jemand wie man das im Mozilla + Netscape zum Laufen kriegt.
text_selection=window.document.selection.createRan ge(); [...]
Google ist Dein Freund, die Suchbegriffe nanntest Du bereits:
http://groups.google.com/groups?as_q...u m=100&hl=de

ciao, dhgm



Reply With Quote
  #6  
Old   
Dietmar Meier
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 11:45 AM



Thomas Kellner <kellner.th (AT) gmx (DOT) net> typed:

Quote:
ich habe da etwas gefunden, funktioniert aber leider nur im IE. weiß
jemand wie man das im Mozilla + Netscape zum Laufen kriegt.
text_selection=window.document.selection.createRan ge(); [...]
Google ist Dein Freund, die Suchbegriffe nanntest Du bereits:
http://groups.google.com/groups?as_q...u m=100&hl=de

ciao, dhgm



Reply With Quote
  #7  
Old   
Thomas Kellner
 
Posts: n/a

Default bbcode - alle Tags schließen. - 10-15-2004 , 12:36 PM



Ich bin gerade dabei eine Funktion 'Alle Tags schließen' zu erarbeiten:
Dies habe ich getan: Das ist das Ergebnis:
Das Problem wenn kein Tag vorhanden ist, tritt folgender Fehler im
Mozilla/IE auf;
Fehler:
window.document.posting.elements.Message.value.mat ch(/\[\w+\]|\[-\]/g) has
no properties;
Fehler: window.document.posting.elements.Message.value.mat ch(...) ist Null
oder kein Objekt.
Code: 0.
Ich denke dass der Fehler daran liegt, da das Textarea keinen Tag enthält
und das Matchen scheitert, wie jedoc hkann man das Problem lösen.

function tags_close_all()
{
#### Fehler
tags_open=window.document.posting.elements["Message"].value.match(/\[\w+\]|\[-\]/g).reverse()#### tags_closed=window.document.posting.elements["Message"].value.match(/\[\/\w+\]|\[\/-\]/g); if(tags_open) { for(i=0;i<tags_open.length;i++) { if(tags_closed) { for(j=0;j<tags_closed.length;j++) { if(tags_open[i]==tags_closed[j].replace(/\//,"")) { tags_open[i]=""; tags_closed[j]=""; } } } if (tags_open[i]!="") { window.document.posting.elements["Message"].value+=tags_open[i].replace(/\[/,"[/"); } } } window.document.posting.elements["Message"].focus(); }ciao


Reply With Quote
  #8  
Old   
Thomas Kellner
 
Posts: n/a

Default bbcode - tag schließen. - 10-15-2004 , 12:42 PM



Hallo,

Parallel dazu habe ich eine Funktion zum aktuellen Schließen eines Tags
eingebunden, dieser fügt jedoch noch einen zweiten Abschluß-Tag hinzu.
Die Funktion sieht so aus. tag_close will deshalb einbinden., da wenn eine
Person ausversehen den Abschlußtag löscht nur den Link 'aktuellen Tag
schließen' betädigen muss.
function tag_close()
{
var tag_last="";
if(tag_last!="")
{
window.document.posting.elements["Message"].value+="[/"+tag_last+"]";
tag_last="";
}
window.document.posting.elements["Message"].focus();
}

tag_last kommt aus der Funktion tag_insert wo bei der komplette Tag gesetzt
wurde.

window.document.posting.elements["Message"].value+="["+tag+"][/"+tag+"]";
tag_last=tag;

Das Ergenbnis sieht zum Beipiel so aus.
[/b]

ich brauche bitte eure Hilfe, ciao



Reply With Quote
  #9  
Old   
Thomas Kellner
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-15-2004 , 01:22 PM



"Dietmar Meier"
Quote:
Google ist Dein Freund, die Suchbegriffe nanntest Du bereits:
http://groups.google.com/groups?as_q...u m=100&hl=de
var tag_last;
var text_selection="";
function tag_insert(tag,assistent)
{
if(assistent=="no" && window.getSelection)
{
text_selection=window.getSelection().toString();
text_selection="["+tag+"]"+text_selection+"[/"+tag+"]";
}
else if(assistent=="no" && document.getSelection)
{
text_selection=document.getSelection();
text_selection="["+tag+"]"+text_selection+"[/"+tag+"]";
}
else if(assistent=="no" && document.selection)
{
text_selection=window.document.selection.createRan ge();
text_selection.text="["+tag+"]"+text_selection.text+"[/"+tag+"]";
}
else if(assistent=="yes" && tag=="b")
{
text=prompt("Bitte um Eingabe des Textes, der fett dargestellt werden
soll.","")
if(text!="" && text!=null)
window.document.posting.elements["Message"].value+=""+text+"";
}
window.document.posting.elements["Message"].focus();
}
Der Code ää wird nicht durch ää ersetzt, wo liegt der Fehler, die
Eingabe im Textarea wird nicht geändert.




Reply With Quote
  #10  
Old   
Thomas Kellner
 
Posts: n/a

Default Re: bbcode ? einfacher! - 10-16-2004 , 07:49 AM



Quote:
Google ist Dein Freund, die Suchbegriffe nanntest Du bereits:
http://groups.google.com/groups?as_q...u m=100&hl=de
ja ich habe Google und SelfHTML bereist und habe den Code entsprechend
angepasst.
<code>
function tag_insert(tag,assistent)
{
if(assistent=="no" && document.selection)
{
text_selection="["+tag+"]"+document.selection.createRange().text+"[/"+tag+"]";
window.document.posting.elements["Message"].value+=text_selection;
}
else if(assistent=="no" && document.getSelection)
{
text_selection="["+tag+"]"+document.getSelection()+"[/"+tag+"]";
window.document.posting.elements["Message"].value+=text_selection;
}
else if(assistent=="no" && window.getSelection)
{
text_selection="["+tag+"]"+window.getSelection().toString()+"[/"+tag+"]";
window.document.posting.elements["Message"].value+=text_selection;
}
else if(assistent=="yes" && tag=="b")
{
text=prompt("Bitte um Eingabe des Textes, der fett dargestellt werden
soll.","")
if(text!="" && text!=null)
window.document.posting.elements["Message"].value+=""+text+"";
}
else if(assistent=="no")
{
window.document.posting.elements["Message"].value+="["+tag+"][/"+tag+"]";
tag_last=tag;
}
else
{
window.document.posting.elements["Message"].value+="";
}
window.document.posting.elements["Message"].focus();
}
</code> Im IE läuft bisher alles Gut, bis das wenn ich einen Textabschnitt
im Textarea markiere beispielsweise 'ff', wird aber zu 'ffff', wo
liegt aber da der Fehler. Das Problem wenn ich text außer halb des textareas
markiere und auf deem Link javascript:tag_insert('b',no') klicke wird der
Text normal eingegeben: '....'. Im Mozilla bzw. Netscape besteht der
Fall, dass wenn ich Text außerhalb des Textareas markiere dieser
ordnungsgemäß eingefügt wird: '.....', jedoch bei Markierung
innerhalb des Textareas, wird nur hinter markierten Teil ''
ausgegeben, wo liegt also da der Fehler.




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.