WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Links per Button ins Formular= (http://www.wcm.at/forum/showthread.php?t=29969)

st0ne 07.09.2001 20:28

Links per Button ins Formular=
 
Hallo, ich hab mal wieder ein Problem:

Ich brauche ein Javascript, das gleich wie hier auf WCM Links in ein Formularobjekt einfügt.
Ich hab leider so gut wie keine Ahnung von Java-Script, aber ich hab folgenden Code aus dem Quellcode
vom WCM rausgelesen:

<input type="button" class="bginput" value="http://" title="Internet Adresse einfügen" onclick="namedlink(this.form,'URL')" onmouseover="stat('url')"

allerdings gibt es schon allein beim drüberfahren mit der maus die erste Fehlermeldung, "Objekt erforderlich" oder so.

Weis jemand wie man so einen Button richtig macht?

jak 08.09.2001 14:20

Ohne den Wcm Quelltext zu kennen, würde ic es so machen. Ich muß mir erst noch überlegen wie man textfelder anspricht aber da kommm ich auch noch drauf.
P.S.: Die erste Zeile ist nicht notwendig, ist aber im w3c Standart vorgesehen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<script language="JavaScript">
<!--
function linkmachen()
{
var linkadresse=prompt("Bitte Internetadresse eingeben","http://");
var linktext;
linktext=prompt("Bitte geben Sie einen Text ein","")
if (linktext=="") {linktext=linkadresse};
document.write("<a href=\"" + linkadresse + "\">" + linktext + "</a>");
}
//-->
</script>
</head>
<body>
<input type="Button" value="Link einfügen" OnClick="linkmachen()">
</body>
</html>

Jak

jak 08.09.2001 14:28

Bin draufgekommen.
Folgende änderungen am oberen posting:
alt
document.write("<a href=\"" + linkadresse + "\">" + linktext + "</a>");
neu
document.forms[0].elements[0].value= (document.forms[0].elements[0].value + ("<a href=\"" + linkadresse + "\">" + linktext + "</a>"));

und nach dem button muß
<form>
<textarea rows="10" cols="20"></textarea>
</form>
stehen.
Wenn du forms davor hast oder du elemente vor das textfeld setzt mußt du forms[0].elements[0] entsprechend ändern.
Du kannst aber auch <form> und <textarea> benamsen.
<textarea name="textfeld">
<form name="formular">
Dann kannst du das textfeld mit (z.B.) formular.textfeld ansprechen.

Jak
P.S.: Laut dem w3c Standart für html 4.0 hat das <form> element kein Attribut "name". Ich glaube aber, daß das trotzdem alle browser verstehen.

st0ne 08.09.2001 15:20

Alles klar, Danke

3of4 11.03.2004 20:38

sorry wenn ich uralte Themen aufwärme, aber das ist genau das was ich brauch...
 
Ich habe gemäß den Code oberhalb versucht bei mir auch die Linkfunktion einzubauen, allerdings werfen der IE und Mozzi beide einen Error in Zeile 40:

Code:

<HTML>
<HEAD>
<link rel="stylesheet" href="STYLESHEET.CSS" type="text/css"><!--
<script language="JavaScript">
<!--
function link()
{
var linkadresse=prompt("Bitte Internetadresse eingeben","http://");
var linktext;
linktext=prompt("Bitte geben Sie einen Text ein","")
if (linktext=="") {linktext=linkadresse};
document.text.value= (document.text.value + ("[link=\'" + linkadresse + "\']>" + linktext + "[/link]"));
}
//-->
</script>
</HEAD>
<BODY BGCOLOR="#000000" vlink="#00ff00" link="#00ff00" text="#ffffff">
<TABLE BORDER=0 WIDTH="780"><TD>

    <FORM NAME="formular" ACTION="newsupdate.asp" METHOD="post">
    <INPUT TYPE="hidden" NAME="id" VALUE="4">
    <DIV ALIGN="CENTER">
    <TABLE BORDER=1 WIDTH=70%>
    <TBODY>

    <TR></TR>
    <TR><TD COLSPAN=2>
    <H1>Titel:
<INPUT NAME="title" VALUE="Testbericht"></H1></TD>
    <TD ALIGN="RIGHT" WIDTH="1%">
    <SPAN CLASS=bez>
    Datum:<INPUT NAME="date" VALUE="25.02.2004">
 
    Autor:<INPUT NAME="author" VALUE="3of4">
    </SPAN></TD>

    </TR>
    <TR><TD COLSPAN=3>
    <H4>Untertitel:
<INPUT NAME="subtitle" VALUE="Bitte, Bitte lösch mich"></H4></TD></TR>
   
    <TR>
    <TD><SPAN CLASS=abs>1. Absatz:
<TEXTAREA NAME="paragraph" COLS=40 ROWS=5>Ich bin ein Absatz, der nur dasteht, damit 3of4 die Bildfähigkeiten des Cms benutzen kann.
Zb. sollte rechts von mir das Erste Bild stehen...</TEXTAREA></SPAN></TD>
    <TD ALIGN="center" VALIGN="top"> <input type="Button" value="Link einfügen" OnClick="link()"></TD><TD ROWSPAN="3">

    Das Ändern oder Hinzufügen von Fotos ist erst nach Erstellung der Berichtes möglich.

    Diesbezüglich Beschwerden bitte an das Salzamt(Salzburg/Österreich).
    </TD>
    </TR><TR>
    <TD COLSPAN=2><SPAN CLASS=text>Text: <TEXTAREA NAME="text" cols=80 rows=20>Und ich bin der Haupttext, der aus dem selben Grund existiert...
Links von mir müssten vier Miniaturansichten sein, welche auf die großen Bilder Verlinken...

MfG ihr TestBeitrag</TEXTAREA>
</SPAN></TD>
    </TR><TR>
    <TD>Externer Link<INPUT NAME="extlink" VALUE=""></TD>

    <TD>Photogallerie (id)<INPUT NAME="photos" VALUE=""></TD>
   
    </TR></TBODY>
    </TABLE>
    </DIV>
    <INPUT TYPE="submit" VALUE="senden">
    </FORM>
   
</TD></TABLE>
</BODY>
</HTML>

Der Fehler (Objekt erwartet) wird in Zeile 40 (Die Zeile wo <input type="button"...> steht), Zeichen 1 gemeldet, aber ich habe keine Ahnung wo da was falsch sein sollte...

jak 12.03.2004 07:29

Der Fehler in Zeile 40 heißt nur, daß beim Aufrufen des Skripts link() irgendetwas schiefgelaufen ist. ich würde sagen, dieses irgendas hängt mit der Zeile
Code:

document.text.value= (document.text.value + ("[link='" + linkadresse + "']>" + linktext + "[/link]"));
zusammen.
Ich würde es so machen:
Die textarea text zu nennen ist eine schlechte idee, da JS versucht auf eine Eigenschaft von document mit dem namen text zuzugreifen. Die textarea liegt in der Hierarchie jedoch irgendwo in dem Array document.elements[i] . Dieses irgendwo herauszufinden geht so:
Code:

<TEXTAREA id="meintext" cols=80 rows=20></textarea>
und der Aufruf im JS geht dann mit
Code:

document.getElementById("meintext").value+=("[link='" + linkadresse + "']>" + linktext + "[/link]"));
(a+=b ist eine Kurzschreibweise für a=a+b)

Jak
<edit>
("[link='" + linkadresse + "']>" + linktext + "[/link]"))
ist vielleicht auch nicht so gut, da in JS ' ziemlich äquivalent zu " ist. Ich würde diese Zeile auch noch mal testen.
</edit>

3of4 12.03.2004 11:26

Nö, das Problem war weil ich das Javascript nicht als erstes im Head gehabt hab --> hab nicht gewusst dass das nötig war...


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag