javascript excape-Funktion


#1

Moin, zusammen,

da ich neu hier bin erstmal schöne Grüße an alle aus Düsseldorf und einen großen Dank an Florian und den harten Kern hier für dieses tolle Projekt!

Mein Problem ist, dass eine js-Funktion, die ansonsten überall ihre Pflicht erfüllt, beim Export nicht zu überreden ist, zu "funktionieren". Der Aufruf erfolgt normalerweise so:

   onmouseover="return escape('bla blubb')"

Den Single-Quote escape ich Mp3tag zuliebe, übergebe also:

   onmouseover="return escape(''bla blubb'')"

Schaue ich mir den generierten HTML-Quellcode nun an, steht da, wie erwartet, wieder die erste Zeile - aber der Event scheint nicht einzutreten, wenn ich das so ausgezeichnete Feld hovere.

Dasselbe gilt, wenn ich den Text als Variable

   var hugo="bla blubb"
   onmouseover="return escape(hugo)"

oder als Funktionsaufruf

   onmouseover="return escape(foo())"

übergebe.

Was mach ich da falsch?

Im Forum scheint dieses Problem noch nie ein Thema gewesen zu sein....

Danke für Eure Aufmerksamkeit

Angy


#2

Hallo,

also, so weit ich weiß, wird return (ausschließlich) dazu benutzt, einen Rückgabewert aus einer Funktion zurückzugeben. So, wie du es benutzt macht es für mich kein Sinn, denn du hast da keine Funktion, wohin willst du dann etwas returnen?

Was genau willst du erreichen?

Gruß
nickless


#3

Hi, nickless,

ich bin normalerweise kein Freund von JS in Websites, deshalb kenne ich mich auch nicht so gut aus. Ich benutze ein Standard-Skript für Tooltips http://www.walterzorn.de/tooltip/tooltip.htm, das im allgemeinen auch tut, was es soll.

Ehrlich gesagt habe ich mich als JS-Nichtspezialist auch schon gefragt, wie das Skript das eigentlich macht - aber es geht ja irgendwie :o))

Gruß aus Düsseldorf
vom Angy


#4

Wenn du dieses Script verwendest, macht return in OnMouseOver natürlich Sinn, denn es ist nicht die escape() die auf "magische" Weise ein Tooltip zeigt sondern die 480 Zeilen an JavaScript-Code, die mit

eingefügt werden. :slight_smile:

Ich hab mir die Datei kurz angeschaut, es sieht so aus, dass die einfach beim Laden alle Links durchgehen und den OnMouseOver Handler durch eigenen ersetzen, und der weiß was mit "return escape('Blahhh')" anzufangen.
Die escape Funktion an sich kodiert einfach den Text als HTML escape characters, also etwa %20 für Leerzeichen usw.

Gruß
nickless


#5

Moin, nickless,

deinen letzten Satz den kannte ich schon, das davor war mir neu, obwohl mich sowas schon deuchte, weil das Script ja partout nach hinten sollte. Danke, dass du mir das so schön erklärt hast.

Ich versteh dann nur nicht, warum das Script beim Export versagt, denn nach Durchlaufen der Export-Funktion steht ja natives HTML bereit, auf das sich das Script dann gefälligst stürzen sollte.

Deshalb befürchte ich, dass das jetzt nicht "euer Bier" ist. Hmpfff.

Trotzdem: dank noch mal

Angy


#6

Vielleicht hast du nicht alle ' [ ] berücksichtigt? Wenn irgendwo ein Syntaxfehler im Javascript ist, geht es auch nicht mehr.

Tooltip an sich funktioniert auch beim Export bestens, hier ein einfaches Beispiel:

$filename(wz_tooltip.htm)
<html>
<body>
$loop(%filename%)%artist% - <a href="about:blank" OnMouseOver="return escape(''%album%'')">%title%</a>

$loopend()
<script language="JavaScript" type="text/javascript" src="wz_tooltip.js"></script>
</body>
</html>

Grüße
nickless

Edit:
Übrigens, die Datei wz_tooltip.js söllte selbstverständlich im selben Verzeichnis sein wie die exportierte HTML Datei (nicht *.mte)!.


#7

Hmmm, ich werde das natürlich noch mal kontrollieren, obwohl ich mir ja sooo sicher bin :unsure:

Da schwant mir doch was... :stuck_out_tongue:

Was immer auch die Lösung ist: Ich danke dir, nickless, beim nächsten Mal bekommst du ein Bier von mir :slight_smile:

Angy