Willkommen in der Webstatt
User-1 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?
User-2 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 ..

User-1 am 24.04.06 17:39

danke, hab vergessen meinem formular einen namen zu geben.

User-1 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.

User-3 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;
}

User-1 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);
}

User-3 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

User-1 am 04.06.06 15:19

mein Formular heißt ja schon "form"!

User-3 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