Cursor an MAUSPOS: In Mozilla
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
- Mitglied
- Beiträge: 41
- Registriert: 29.12.2001 01:00
- Wohnort: Mülheim a.d. Ruhr
- Kontaktdaten:
Cursor an MAUSPOS: In Mozilla
Moin,
ich verzweifle grad...
Gibt es irgendein Workaround, um Mozilla zu veranlassen, den BBCode an der Cursorposition einzufügen?
Alle Mods, die zu diesem Thema vorhanden sind, funktionieren nicht in gewünschterweise mit Mozilla bzw. Firebird.
Für gute Ideen bin ich dankbar.
ich verzweifle grad...
Gibt es irgendein Workaround, um Mozilla zu veranlassen, den BBCode an der Cursorposition einzufügen?
Alle Mods, die zu diesem Thema vorhanden sind, funktionieren nicht in gewünschterweise mit Mozilla bzw. Firebird.
Für gute Ideen bin ich dankbar.
M.f.G.
thl1000
thl1000
-
- Mitglied
- Beiträge: 41
- Registriert: 29.12.2001 01:00
- Wohnort: Mülheim a.d. Ruhr
- Kontaktdaten:
RE...
Also, ich habe folgendes geändert (funzt im IE und im Mozilla...
1. Smilies:
2. Schriftfarbe und -grösse:
Bei diesen Code-Änderungen werden die Smilies und der BBCode für Schriftfarbe u. -grösse an der Cursor-Position eingefügt.
Nur bei der Funktion bbstyle(bbnumber) komme ich nicht weiter.
Hier bräuchte ich Hilfe...
1. Smilies:
Code: Alles auswählen
function emoticon(text) {
var txtarea = document.post.message;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos)
{
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
}
else if (document.getElementById && !document.all) // Mozilla
{
var selEnd = txtarea.selectionEnd;
var txtLen = txtarea.value.length;
var txtbefore = txtarea.value.substring(0,selEnd);
var txtafter = txtarea.value.substring(selEnd, txtLen);
txtarea.value = txtbefore + text + txtafter;
}
else
{
txtarea.focus();
txtarea.value += text;
}
}
Code: Alles auswählen
function bbfontstyle(bbopen, bbclose) {
var txtarea = document.post.message;
if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text;
if (!theSelection)
{
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbopen + bbclose + ' ' : bbopen + bbclose;
txtarea.focus();
//txtarea.value += bbopen + bbclose;
//txtarea.focus();
return;
}
document.selection.createRange().text = bbopen + theSelection + bbclose;
txtarea.focus();
return;
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbopen, bbclose);
return;
}
else if (document.getElementById && !document.all) // Mozilla
{
var selEnd = txtarea.selectionEnd;
var txtLen = txtarea.value.length;
var txtbefore = txtarea.value.substring(0,selEnd);
var txtafter = txtarea.value.substring(selEnd, txtLen);
txtarea.value = txtbefore + bbopen + bbclose + txtafter;
}
else
{
txtarea.value += bbopen + bbclose;
txtarea.focus();
}
storeCaret(txtarea);
}
Nur bei der Funktion bbstyle(bbnumber) komme ich nicht weiter.
Hier bräuchte ich Hilfe...
M.f.G.
thl1000
thl1000
-
- Mitglied
- Beiträge: 41
- Registriert: 29.12.2001 01:00
- Wohnort: Mülheim a.d. Ruhr
- Kontaktdaten:
die Lösung?
So, habe jetzt diesen Code, der allerdings beim Mozilla noch einen Bug hat:
Der Cursor springt nach jedem Einfügen eines BBCodes an das Ende des Textfeldes. Hier bräuchte ich jetzt noch Hilfe.
Der Cursor springt nach jedem Einfügen eines BBCodes an das Ende des Textfeldes. Hier bräuchte ich jetzt noch Hilfe.
Code: Alles auswählen
function emoticon(text)
{
var txtarea = document.post.message;
text = ' ' + text + ' ';
if (is_ie)
{
if (txtarea.createTextRange && txtarea.caretPos)
{
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
}
else
{
txtarea.focus();
txtarea.value += text;
}
}
else if (document.getElementById && !document.all) // Mozilla cursor fix
{
mozWrap(txtarea, text, '');
}
else // Other browsers
{
txtarea.focus();
txtarea.value += text;
}
}
function bbfontstyle(bbopen, bbclose)
{
var txtarea = document.post.message;
if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text;
if (!theSelection)
{
// IE Cursor Fix
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbopen + bbclose + ' ' : bbopen + bbclose;
txtarea.focus();
//txtarea.value += bbopen + bbclose;
//txtarea.focus();
return;
}
document.selection.createRange().text = bbopen + theSelection + bbclose;
txtarea.focus();
return;
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbopen, bbclose);
return;
}
else if (document.getElementById && !document.all) // Mozilla cursor fix
{
mozWrap(txtarea, bbopen, bbclose);
return;
}
else // Other browsers
{
txtarea.value += bbopen + bbclose;
txtarea.focus();
}
storeCaret(txtarea);
}
function bbstyle(bbnumber)
{
var txtarea = document.post.message;
txtarea.focus();
donotinsert = false;
theSelection = false;
bblast = 0;
if (bbnumber == -1)
{
// Close all open tags & default button names
while (bbcode[0])
{
if(is_ie) // IE cursor fix
{
if (txtarea.createTextRange && txtarea.caretPos)
{
var caretPos = txtarea.caretPos;
butnumber = arraypop(bbcode) - 1;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbtags[butnumber + 1] + ' ' : bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
else
{
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
}
else if (document.getElementById && !document.all) // Mozilla cursor fix
{
butnumber = arraypop(bbcode) - 1;
mozWrap(txtarea, bbtags[butnumber + 1], '');
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
else // Other browsers
{
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
//butnumber = arraypop(bbcode) - 1;
//txtarea.value += bbtags[butnumber + 1];
//buttext = eval('document.post.addbbcode' + butnumber + '.value');
//eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
imageTag = false; // All tags are closed including image tags :D
txtarea.focus();
return;
}
if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text; // Get text selection
if (theSelection)
{
// Add tags around selection
document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
txtarea.focus();
theSelection = '';
return;
}
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
return;
}
// Find last occurance of an open tag the same as the one just clicked
for (i = 0; i < bbcode.length; i++) {
if (bbcode[i] == bbnumber+1) {
bblast = i;
donotinsert = true;
}
}
if (donotinsert)
{
// Close all open tags up to the one just clicked & default button names
while (bbcode[bblast])
{
if (is_ie) // IE cursor fix
{
if (txtarea.createTextRange && txtarea.caretPos)
{
var caretPos = txtarea.caretPos;
butnumber = arraypop(bbcode) - 1;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbtags[butnumber + 1] + ' ' : bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
else
{
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
}
else if (document.getElementById && !document.all) // Mozilla cursor fix
{
butnumber = arraypop(bbcode) - 1;
mozWrap(txtarea, bbtags[butnumber + 1], '');
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
else // Other browsers
{
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
//butnumber = arraypop(bbcode) - 1;
//txtarea.value += bbtags[butnumber + 1];
//buttext = eval('document.post.addbbcode' + butnumber + '.value');
//eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
//imageTag = false;
}
txtarea.focus();
return;
}
else
{
// Open tags
if (is_ie) // IE cursor fix
{
if (imageTag && (bbnumber != 14))
{
// Close image tag before adding another
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbtags[15] + ' ' : bbtags[15];
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.post.addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
}
// Open tag
if (txtarea.createTextRange && document.post.message.caretPos)
{
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? bbtags[bbnumber] + ' ' : bbtags[bbnumber];
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
else
{
txtarea.value += bbtags[bbnumber];
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
}
else if (document.getElementById && !document.all) // Mozilla cursor fix
{
// Open tags
if (imageTag && (bbnumber != 14))
{
// Close image tag before adding another
mozWrap(txtarea, bbtags[15], bbtags[bbnumber]);
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.post.addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
//txtarea.focus();
//return;
}
else
{
// Open tag
mozWrap(txtarea, bbtags[bbnumber], '');
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
}
else // Other browsers
{
if (imageTag && (bbnumber != 14))
{
// Close image tag before adding another
txtarea.value += bbtags[15];
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.post.addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
}
else
{
// Open tag
txtarea.value += bbtags[bbnumber];
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
}
}
storeCaret(txtarea);
}
M.f.G.
thl1000
thl1000
http://www.c-plusplus.de/forum/posting. ... topic&f=15
kuck dir mal den quellcode an, (ich habe das gecodet) wollte das auch schon public machen, nur war mir das zu dumm die neuerung in das halbhertzig gecodet standard phpbb einzucoden
kuck dir mal den quellcode an, (ich habe das gecodet) wollte das auch schon public machen, nur war mir das zu dumm die neuerung in das halbhertzig gecodet standard phpbb einzucoden