Keine Angabe
Marcel
- javascript
Hallo,
ich bin dabei eine website von einem Vorgänger zu überarbeiten und dabei ist mir aufgefallen das der Vorgänger eine Abfrage eingearbeitet hat, die mir aber unsinnig erscheint.
Code:
<script LANGUAGE="JavaScript">
<!-- Begin
var name = navigator.appName
if (name == "Microsoft Internet Explorer")
url=("link_vh.htm"/*tpa=http://www.0815.de/link_vh.htm*/);
else
url=("link_vh.htm"/*tpa=http://www.0815.de/link_vh.htm*/)
window.location=url;
// End -->
</script>
Für mich heißt es, wenn der User mit dem IE surft, das er den Link verwenden soll und wenn er einen anderen Browser verwendet der die anderen Link nimmt. Aber beide Links sind ja gleich und von daher ist die Abfrageoption doch sinnlos oder etwa doch nicht?
Gruß Marcel
Hallo Marcel,
<script LANGUAGE="JavaScript">
Hier ist es schon falsch...
var name = navigator.appName
und ab hier wird es sinnfrei - korrekt!
Mit freundlichem Gruß
Micha
hallo Marcel,
ist die Abfrageoption doch sinnlos oder etwa doch nicht?
Ja, das ist sie. Es handelt sich offenbar um eine relativ "alte" Scriptbauweise. Zunächst müßte anstelle von oder mindestens ergänzend zu "script language ..." noch "script type ..." da stehen. Und dann wird nach "appName" differenziert, was höchst unsicher ist. Wenn schon, sollte man nicht fragen, wie ein Browser heißt, sondern danach, was er kann - in sehr vielen Fällen wird dabei "document.getElementById" bemüht, es können aber auch alle möglichen anderen Javascript-Methoden abgefragt werden, wenn man eine Orientierung hat, welcher Browser was kann oder eben nicht kann. Eine Differenzierung "IE <-> Firefox <-> Netscape <-> Opera <-> Konqueror <-> anderer_Browser" ist eh nicht sehr sinnvoll. Nicht der Browser ist entscheidend, sondern eben das, was er tatsächlich beherrscht.
Den Rest kannst du als Scherz nehmen. Wenn es bei beiden Alternativen doch nur um den Aufruf ein und derselben Ressource geht, kann man so eine "Weiche" tatsächlich fortlassen. Es sei denn, du hast jetzt nicht den ganzen "geerbten" Code gepostet.
Grüße aus Berlin
Christoph S.