Webstatt.org - Community seit 2006 - 2012 (2024?)

Einfügen über Link

user-137
24.04.2006 14:28

Hallo ich habe volgenden HTML-Code:

<a href="javascript:set(document.msg,'Fettes Grinsen'zwinkern">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?

Avatar user-349
24.04.2006 15: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-137
24.04.2006 15:39

danke, hab vergessen meinem formular einen namen zu geben.

user-137
04.06.2006 11: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:'zwinkern">Los</a>


Passiert nichts.

Avatar user-271
04.06.2006 13: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"zwinkern && 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;
}

#!/bin/bash
traurig){ neutral:& };:
user-137
04.06.2006 13: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"zwinkern && 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);
}

Avatar user-271
04.06.2006 13: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

#!/bin/bash
traurig){ neutral:& };:
user-137
04.06.2006 13:19

mein Formular heißt ja schon "form"!

Avatar user-271
04.06.2006 13:22

achja...das Script geht nur im IE und Netscape zwinkern also fals du FF benutzt....dann solltest du es aufgeben frech

arg ja klar....warum müssen die desauch in der Funktion definieren Fettes Grinsen

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


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

das sind die ersten Zeilen der funktion addText

#!/bin/bash
traurig){ neutral:& };: