Liebe(r) kointa,
Du willst diverses auf einmal. Das ist nicht verkehrt, jedoch solltest Du in manchen Details etwas anders vorgehen.
<script type="text/javascript">
id='<?php echo $_GET['id'];?>';
if (id == '1')
{
flash("http://www.site.de/Games/roulette.swf");
}
</script>
Diese Funktion soll sofort beim Laden der Seite ausgeführt werden, obwohl die Seite noch nicht bis zum Ende geladen hat. Das ist potentiell gefährlich, da Dein Script auf Dinge zugreifen möchte, die noch nicht existieren.
Ich muss jetzt ein bisschen raten, da ich die Funktion flash() nicht kenne. Zuerst einmal initialisieren wir Deine Funktion erst nach dem vollständigen Laden der Seite:
<script type="text/javascript">
window.flashStarter = {
onLoad : function () {
// wird nach dem vollständigen Laden der Seite ausgeführt
var id = '<?php echo $_GET['id']; ?>';
// IDs für die Spiele definieren:
var games = new Array();
games[1] = "roulette";
games[2] = "schach";
games[3] = "poker";
// Spiel aufrufen
if (games[id])
flash("http://www.site.de/Games/"+games[id]+".swf");
},
init : function () {
// wird bereits beim Laden der Seite ausgeführt:
this.oldWinOnLoad = window.onload;
window.onload = function () {
if (typeof(window.flashStarter.oldWinOnLoad) == "function")
window.flashStarter.oldWinOnLoad();
window.flashStarter.onLoad();
};
}
};
window.flashStarter.init();
</script>
<a class="page" href="http://www.site.de/Games/roulette.swf?id=1" onclick="flash(this.href);return false">Roulette</a>
Besser wäre es, wenn die Funktion flash() in sich ein "return false" am Ende hätte, denn dann könntest Du die Links so gestalten: <a class="page" href="http://www.site.de/Games/roulette.swf?id=1" onclick="return flash(this.href);">Roulette</a>
.
Noch besser wäre es, wenn Du die JavaScript-Funktionalität mit diesem onclick erst von JavaScript selbst erzeugen lässt. Das soll heißen, dass Du im Quelltext der Seite überhaupt kein onclick notierst, sondern dass das die onLoad()-Funktion meines oben vorgeschlagenen flashStarter-Objektes tut. Das könnte so aussehen:
// das muss noch in die obige Funktion hinein:
var as = document.getElementsByTagName("a");
for (var i = 0; i < as.length; i++) {
// href checken, ob es auf eine Flash-Datei verweist
if (as[i].href && as[i].href.match(/\.swf$/))
as[i].onclick = "return flash(this.href);";
}
Mein Code ist ungeprüft! Hoffentlich hilft er.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)