Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder am 24.04.06 16:28

Hallo ich habe volgenden HTML-Code:

<a href="javascript:set(document.msg,':D')">Test</a

Und so ein Javascript code:

<script language="JavaScript">
<!--
function set(w,t){

w.msg.value += t;
w.msg.focus();
}
//-->
</script>


Nur leider wird nichts in die Textarea "msg" eingetragen, wiso?

netcup.de Warum gibt es hier Werbung?
Zeronet Zeronet am 24.04.06 17:35

heißt dein form und dein input 'msg'?
nenn mal eins um, die müssen ja nicht gleich heißen, wenn nein änder das trotzdem ..

BNightSpeeder am 24.04.06 17:39

danke, hab vergessen meinem formular einen namen zu geben.

BNightSpeeder am 04.06.06 13:47

Frage:

Also das script obentut es ja immer ans ende des Formulars, aber ich will es ja so wie im Forum, also hab ich mir mal den BBCode von Woltlab angeschaut, und da ist sowas:

function smilie(theSmilie) {
addText(" " + theSmilie, "", false, document.form);
}


Nun wenn ich es in mein script einbauen will mit:

<a href="#" onClick="javascript:smilie(':rolleyes:')">Los</a>

Passiert nichts.

nuit nuit am 04.06.06 15:09

weil die funktion addText von WoltLab definiert wurde...du musst im exernen Js kucken

Function addText in /js/bbcode.js
function addText(theTag, theClsTag, isSingle, theForm)
{
var isClose = false;
var message = theForm.message;
var set=false;
var old=false;
var selected="";

if(message.textLength>=0 ) { // mozilla, firebird, netscape
if(theClsTag!="" && message.selectionStart!=message.selectionEnd) {
selected=message.value.substring(message.selectionStart,message.selectionEnd);
str=theTag + selected+ theClsTag;
old=true;
isClose = true;
}
else {
str=theTag;
}

message.focus();
start=message.selectionStart;
end=message.textLength;
endtext=message.value.substring(message.selectionEnd,end);
starttext=message.value.substring(0,start);
message.value=starttext + str + endtext;
message.selectionStart=start;
message.selectionEnd=start;

message.selectionStart = message.selectionStart + str.length;

if(old) { return false; }

set=true;

if(isSingle) {
isClose = false;
}
}
if ( (myVersion >= 4) && is_ie && is_win) { // Internet Explorer
if(message.isTextEdit) {
message.focus();
var sel = document.selection;
var rng = sel.createRange();
rng.colapse;
if((sel.type == "Text" || sel.type == "None") && rng != null){
if(theClsTag != "" && rng.text.length > 0)
theTag += rng.text + theClsTag;
else if(isSingle)
isClose = true;

rng.text = theTag;
}
}
else{
if(isSingle) isClose = true;

if(!set) {
message.value += theTag;
}
}
}
else
{
if(isSingle) isClose = true;

if(!set) {
message.value += theTag;
}
}

message.focus();

return isClose;
}

BNightSpeeder am 04.06.06 15:17

hab's hinzugefügt, aber es passiert weiter nichts:

function addText(theTag, theClsTag, isSingle, theForm)
{
var isClose = false;
var message = theForm.message;
var set=false;
var old=false;
var selected="";

if(message.textLength>=0 ) { // mozilla, firebird, netscape
if(theClsTag!="" && message.selectionStart!=message.selectionEnd) {
selected=message.value.substring(message.selectionStart,message.selectionEnd);
str=theTag + selected+ theClsTag;
old=true;
isClose = true;
}
else {
str=theTag;
}

message.focus();
start=message.selectionStart;
end=message.textLength;
endtext=message.value.substring(message.selectionEnd,end);
starttext=message.value.substring(0,start);
message.value=starttext + str + endtext;
message.selectionStart=start;
message.selectionEnd=start;

message.selectionStart = message.selectionStart + str.length;

if(old) { return false; }

set=true;

if(isSingle) {
isClose = false;
}
}
if ( (myVersion >= 4) && is_ie && is_win) { // Internet Explorer
if(message.isTextEdit) {
message.focus();
var sel = document.selection;
var rng = sel.createRange();
rng.colapse;
if((sel.type == "Text" || sel.type == "None") && rng != null){
if(theClsTag != "" && rng.text.length > 0)
theTag += rng.text + theClsTag;
else if(isSingle)
isClose = true;

rng.text = theTag;
}
}
else{
if(isSingle) isClose = true;

if(!set) {
message.value += theTag;
}
}
}
else
{
if(isSingle) isClose = true;

if(!set) {
message.value += theTag;
}
}

message.focus();

return isClose;
}

function smilie(theSmilie) {
addText(" " + theSmilie, "", false, document.form);
}

nuit nuit am 04.06.06 15:18

du musst auch deine Form ändern......

addText(" " + theSmilie, "", false, document.form);

muss zu

addText(" " + theSmilie, "", false, document.{deinform});



ausserdem schau dir mal die Js Konsole an...da soltle eigentlich die Fehler drin stehn

BNightSpeeder am 04.06.06 15:19

mein Formular heißt ja schon "form"!

nuit nuit am 04.06.06 15:22

achja...das Script geht nur im IE und Netscape ;) also fals du FF benutzt....dann solltest du es aufgeben :P

arg ja klar....warum müssen die desauch in der Funktion definieren :D

var isClose = false;
var message = theForm.msg;
var set=false;
var old=false;
var selected="";


var message....da muss theForm.{deinfeld} hin ;) habe ich gaaanz vergessen

das sind die ersten Zeilen der funktion addText

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt