Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

onMouseOver: Veränderung soll an anderer Position erfolgen





Frage

Hallo zusammen, ich möchte gern über einen Link mit der Maus fahren und in einer Zeile unter diesem Link soll dann ein Hinweistext erscheinen (soll eine Hilfezeile werden). Funktioniert aber bisher noch gar nicht. Hier ist mal der Code: Der Link sieht so aus: [code] <a href ="javascript:Insert(´[ b ]´,´[ /b ]´)" onMouseOver="helpline(´b´)"><img src="img/bold.gif" alt="Fett" border="0"></a> [/code] Insert bedeutet übrigens, dass in einem Textfeld die Zeichen in der Klammer eingefügt werden. Aber darum geht es gar nicht und das funktioniert auch schon. Mir gehts um die Funktion helpline, die ich wie folgt geschrieben habe: [code] <SCRIPT LANGUAGE="javascript" TYPE="text/javascript"><!-- // Helpline messages b_help = "Text in fett: [ b ]Text[ /b ]"; setFormular(´post´); function helpline(help) { document.post.helpbox.value = eval(help + "_help"); } //--></SCRIPT> [/code] Davon gibt es dann eine ganze Reihe solcher Links, aber ich würde es erst mal an diesem Beispiel zum laufen bekommen wollen :-). An der Stelle, wo die Zeile erscheinen soll steht dann das: [code] <INPUT TYPE="text" NAME="helpbox" SIZE="100" MAXLENGTH="100" STYLE="width:400px" VALUE="Hilfszeile zu den Formatierungs-Button!" READONLY> [/code] Ich habe mir das Skript versucht abzuschreiben von einer vorhandenen Webseite, aber irgendwas mache ich noch falsch und ich komm nicht weiter :-(. Hat jemand einen Tipp? Kathrin

Antwort 1 von kathrin77

Ok, meinen Fehler hab ich grad entdeckt, aber noch nicht gelöst. Ich muss natürlich an dieser Stelle:

 
<INPUT TYPE="text" NAME="helpbox" SIZE="100" MAXLENGTH="100" STYLE="width:400px" VALUE="hier muss die ausgabe rein" READONLY>


die Ausgabe übergeben. Nur wie? Ich benutze übrigens php, wäre schön, wenn iches damit lösen könnte?

Kathrin

Antwort 2 von rfb

vielleicht hilft dir dies:
 function helpline(help) {
var a=new Object();
a["b"]="Text in fett: [ b ]Text[ /b ]";
a["i"]="Text in kursiv: [ i ]Text[ /i ]";
   document.getElementById("post").firstChild.data = a[help]; 
}


und Ausgabe in:
 <p id="post"></p>


Aufruf mit:
 <a href="javascript:helpline(´b´)">fett</a>


(statt der Ausgabe in <p id="post"> kannst du natürlich auch dein input-element nehmen, ich mags lieber so ;-)

Antwort 3 von rfb

ach so, bin mal wieder über eine SN-Falle gestolpert:
irgendwas muss natürlich innerhalb von <p id="post"> und </p> stehen, mein & nbsp; wurde verschluckt.

Antwort 4 von rfb

sorry hatte dein onmouseover nicht berücksichtigt, damit lautet es natürlich ein bisschen anders:
 function helpline(help) {
var a=new Object();
a["nix"]=unescape("%A0");
a["b"]="Text in fett: [ b ]Text[ /b ]";
a["i"]="Text in kursiv: [ i ]Text[ /i ]";
document.getElementById("post").firstChild.data = a[help]; 
}


und im body:
 <p id="post">& nbsp;</p>
<p><a href="..." onmouseover="helpline(´b´)" onmouseout="helpline(´nix´)">b</a><br><a href="..." onmouseover="helpline(´i´)" onmouseout="helpline(´nix´)">i</a></p>


die ´ in helpline(´nix´) sind die einf. Anf.zeichen, die neben dem Ä auf der Tastatur, das SN ersetzt die hier mit einem ähnlichen Zeichen.

Antwort 5 von kathrin77

@rfb:
Ich danke Dir vieeeeeeeeel mals!!!!! Du glaubst gar nicht, wie lange ich gestern schon daran gesessen habe. Dein Code funktiniert einfach wunderbar, so wie ich das wollte. Bin Dir sehr dankbar :-)!!

Eine Sache kann ich nur noch nicht ganz nachvollziehen, was bedeutet:
 
a["nix"]=unescape("%A0"); 

Also genauergesagt, das was nach dem "=" steht versteh ich nicht so richtig. Ich weiß, dass es die mouseout-Variable ist, aber was wird da gemacht?

Danke jedenfalls!!

Kathrin

Antwort 6 von rfb

%A0 ist die Methode, das geschützte Leerzeichen in JavaScript zu notieren (so wie mit & nbsp; im HTML), mit
unescape("%A0")
wird es zurückgewandelt für die Ausgabe.
Eine direkte Ausgabe mit
 ...data="& nbsp;";
klappt nämlich nicht.

Antwort 7 von kathrin77

Ach so, vielen Dank für Deine Erklärung! Ja, das habe ich beim ausprobieren auch bemerkt, dass html-Zeichen wie "& nbsp;" dort nicht so verarbeitet werden wie man es will. Aber das stört in meinem Fall nicht.

Danke,
Kathrin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: