Struppi: DHTML auf NN 6

Beitrag lesen

Hi

Bitte?

eval ist in 99% der Fälle überflüssig. Daneben fehlerträchtig, fehlerverursacehnd und du findest Fehler nicht mehr, weil die Fehlermeldungen nicht mehr deutlich sind.
Wenn du sauber programmierst ist ein eval() Gold wert.
Wenn du nämlich zum Beispiel
document.getElementById(variable).style in nem eval() unterbringst hast du bei großen Scripten erstens weniger Schreibarbeit und zweitens geringe Performancegewinne.

Wieso sollte eval einen Performancegewinn bringen? Dadurch wird der Code einfach nur während der Laufzeit übersetzt, anstatt zu beginn, was mit Sicherheit performanter ist und weniger Schreibarbeit ist es mit sicherheit auch. Dazu kommt es ist übersichtlicher und wenn du einen vernünftigen Browser benutzt siehst du die Fehler beim entwickeln wesentlich leichter.

eval ist unnötig!

Und wo sollen denn Fehlermeldungen herkommen? Lässt du nicht debuggte Scripte etwa auf Surfer los?

Nein, aber du baust eval nach dem debuggen ein?

Du meinst evtl. sowas: if(!menu) alert('menu ist nicht definiert';
Nein, das geht in diesem Fall nicht, da menu in jedem Fall zwar definiert ist, aber kaum tun wird, was es soll, da der this-zeiger in externen Funktionen in JS nicht funktioniert. Und bitte setze die )-Klammer noch, das ist nicht unwichtig >;)

menu ist zwar definiert, aber leer, d.h. if(!menu) ist wahr wenn es null oder ein Leerstring ist.

Und was heißt this in externen Funktionen?
this bezieht sich immer auf das aktuelle Objekt, je nach Kontext.

Und deshalb funktioniert das was der OP wollte, allerdings kann NC 4.x kein className ändern, abner ansonsten geht alles andere

Probier's aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function test(obj)
{
    obj.x += 10;
}
</script>
</head>

<body>
<layer style="position:absolute;" onmouseover="test(this);">test</layer>
</body>
</html>

Aber dafür brauch man kein eval.
IMHO schon.

Wieso?

Struppi.