Der Martin: overlib-Bibliothek

Beitrag lesen

Hi,

ich habe leider keine Ahnung von Java/Javascript.

es ist noch kein Meister vom Himmel gefallen (wäre auch gefährlich für den Meister). Aber wenn du schon Javascript verwendest, solltest du wenigstens Grundkenntnisse haben bzw. dir anlesen. Von Java sehe ich hier übrigens weit und breit nichts.

Ich habe hier ein kleinen Java/Javascript code, den ich gerne bei mir in eine HTML seite einbinden möchte. Jedoch funktioniert es nicht so wie ich möchte.

Und das heißt ...? Wir wissen weder, wie du das Resultat gerne hättest, noch, was du stattdessen tatsächlich feststellst. Und "funktioniert nicht so wie ich möchte" ist ebenso wie die Kurzfassung "funktioniert nicht" keine ausreichende Problembeschreibung.

Mein Problem, der Java/Javascript Code war ist mit php verknüpft. Ich habe versucht es ohne PHP zumachen, aber ich schaff es einfach nicht.

Zunächst mal solltest du (im Kopf!) sauber trennen: PHP wird auf dem Server ausgeführt, Javascript beim Client (im Browser). Die beiden Welten haben nichts miteinander zu tun, außer dass PHP eventuell Code ausgibt, der als beim Client Javascript interpretiert wird.
Wenn du also ein Javascript-Problem analysieren willst, lass am besten jeglichen PHP-Code aus dem Spiel.

Hier ist der Code im Einsatz, einfach mit der Maus rechts über das Bild(ONLINE/OFFLINE) fahren.
Hier der Link zur HP

Hier der Original Code
$status = "<a href=\"#\" \"javascript:void(0);\" onmouseover=\"return overlib('', FGBACKGROUND, 'http://www.game-monitor.com/find-player/363536/99aa77/eeeeee/333333/bf2/".$row['pid'].".png', WIDTH, 468, HEIGHT, 60);\" onmouseout=\"return nd();\"><img src=\"http://www.game-monitor.com/find-player/5C5F52/000000/000000/5C5F52/bf2/2/".$row['pid'].".png\" border=0></a>";

Das ist der serverseitige PHP-Code, und der interessiert hier überhaupt nicht. Was kommt tatsächlich beim Client an?

Und hier mein geänderter Code
<a href=\"#\" \"javascript:void(0);\" onmouseover=\"return overlib('', FGBACKGROUND, 'http://www.game-monitor.com/find-player/222222/FFFFFF/FF9900/FFFFFF/bf2/0/161951762.png', WIDTH, 468, HEIGHT, 60);\" onmouseout=\"return nd();\"><img src=\"http://www.game-monitor.com/find-player/222222/FFFFFF/FF9900/FFFFFF/bf2/2/161951762.png\" border=0></a>

Genau, das wollten wir sehen: HTML mit eingebettetem Javascript. Wenn du jetzt die unseligen Backslashes noch weggelassen hättest, wär's sogar lesbar. (Im Original-Quellcode sind sie nicht drin, warum setzt du sie hier im Beispieltext rein?)
Im Original sehe ich:

<a href="#" "javascript:void(0);" onmouseover="return overlib('', FGBACKGROUND, 'http://www.game-monitor.com/find-player/EEEEEE/000000/0000FF/000000/bf2/0/108304410.jpg', WIDTH, 468, HEIGHT, 60);" onmouseout="return nd();">

Ob der overlib-Aufruf korrekt ist, kann ich mangels Kenntnis dieser Bibliothek nicht sagen. Das einzige, was mir auffällt, ist der einsam und verloren stehende Attributwert "javascript:void(0);". Der gehört irgendwie zu nichts, also weg damit. Oder hätte das ein onclick-Handler werden sollen? Dann ware aber das Präfix "javascript:" fehl am Platz. Oder hätte das sogar der Wert des href-Attributs sein sollen? Das wäre zwar semantisch nicht besser, in der Praxis aber immerhin günstiger als das "#".

Ich würde dir aber abschließend empfehlen, diesen Effekt nicht an ein a-Element zu binden. Du willst keine neue Ressource verlinken (das sagt mir dein href="#"), also ist ein Link hier fehl am Platz. Binde den Effekt stattdessen direkt an das Bild, das "normal" in der Tabellenspalte angezeigt wird.

So long,
 Martin

--
Besteht ein Personalrat aus nur einer Person, erübrigt sich die Trennung nach Geschlechtern.
  (aus einer Info des deutschen Lehrerverbands Hessen)