PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktion bedarf einer Überprüfung



Berufspenner
08-05-2003, 14:41
Hi@all

Könnte sich bitte mal jemand vollgende Seite Angucken und mir mal sagen, wieso in Zeile 30 der Fehler: "window.document.sun has no properties" auftritt? Entweder hab ich Tomaten auf den Augen oder ich bin einfach zu doof.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Sonne</TITLE>

</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var y = screen.availHeight;
var x = 0;
var full = screen.widht;
var half = full / 2;

function sonne()
{
window.document.count.test.value = y;

if(x < half)
{
x++;
y--;
window.document.sun.top = y;
window.document.sun.left = x;
window.setTimeout('sonne()', 10000);
}
else
{
x++;
y++;
window.document.sun.top = y;
window.document.sun.left = x;
window.setTimeout('sonne()', 10000);
}
}
//-->
</SCRIPT>
<BODY onLoad="sonne()">
<form name="count">
<input name="test">
</form>
<div id="sun" style="position:absolute">
<img src="sonne.gif">
</div>
</BODY>
</HTML>

Cu
André

Berufspenner
09-05-2003, 20:42
Hi@all

Hat denn echt niemand eine Idee? Mir ist bis jetzt leider selber noch nichts eingefallen.

Cu
André

arthur
09-05-2003, 21:27
ich bin kein html profi, nicht mal durchschnitt,
aber ich hab ein beispiel gesehen nach dem es so aussehen soll:


...
window.document.all.sun.style.top = y;
...

gilt für IE 5

gruss
Arthur

Berufspenner
09-05-2003, 21:54
Original geschrieben von arthur
ich bin kein html profi, nicht mal durchschnitt,
aber ich hab ein beispiel gesehen nach dem es so aussehen soll:


...
window.document.all.sun.style.top = y;
...

gilt für IE 5

gruss
Arthur Ersteinmal danke für deine Antwort. Leider änder sich nichts. Die Fehlerausgabe bleibt die geliche.

Cu
André

arthur
09-05-2003, 22:17
dhtml ist extrem browser abhängig,
ich habe es eben getestet und komischerweise bekomme ich unter opera
kein fehler angezeigt, nur bei netscape ???

gruss
Arthur

Berufspenner
09-05-2003, 22:22
Original geschrieben von arthur
dhtml ist extrem browser abhängig,
ich habe es eben getestet und komischerweise bekomme ich unter opera
kein fehler angezeigt, nur bei netscape ???

gruss
Arthur Ich hatte die Ursprungsseite und die abgeänderte Version mit dem IE 6 und Phoenix getestet. Es kommt jeweils der selbe Fehler bei heraus.

Cu
André

PS: HTML + JScript -> DHTML ?

arthur
09-05-2003, 22:51
schau dir mal das hier an:
http://www.dynamicdrive.com/dynamicindex4/bounceimage.htm
ist zwar etwas komplexer, dafür unterscheidet es zwischen
verschieden browsern.
und ja dhtml ist nichts anderes als javascript und html.
die funktionalität auf du über javascript zugreifst kommt
aber von dem browser und ist nicht wirklich standardisiert.

gruss
Arthur

anda_skoa
09-05-2003, 23:45
Original geschrieben von arthur
die funktionalität auf du über javascript zugreifst kommt
aber von dem browser und ist nicht wirklich standardisiert.


Doch, sowohl die Scriptsprache, als auch das Object Model sind standardisiert.

getElementById sollte bei jedem DOM compatiblen Browser gehen.

Ciao,
_

arthur
10-05-2003, 00:04
function moveBall() {
if (superballRunning == true) {
calculatePosition();
if (document.all) {
document.all("superball").style.left = xPos + document.body.scrollLeft;
document.all("superball").style.top = yPos + document.body.scrollTop;
}
else if (document.layers) {
document.layers["superball"].left = xPos + pageXOffset;
document.layers["superball"].top = yPos + pageYOffset;
}
else if (document.getElementById) {
document.getElementById("superball").style.left = xPos + pageXOffset;
document.getElementById("superball").style.top = yPos + pageYOffset;
}
doit=setTimeout('moveBall()',30);
}
}

ich hab nicht behauptet dass die scriptsprache sich unterscheidet,
nur der dhtml part.
aber auch der erwähnte standard, wenn er nicht von jedem browser unterstützt
wird, ist meiner meinung nach nicht sehr viel wert.
wenn die seite auf den meisten browser laufen soll, muss man
wohl oder übel zwischen den browsern unterscheiden. (siehe beispiel auschnitt oben)

gruss
Arthur

anda_skoa
10-05-2003, 00:06
Welcher Browser unterstützt kein getElementById?

Ciao,
_

arthur
10-05-2003, 00:09
alles unter IE5 bzw netscape 6 :)

gruss
Arthur

anda_skoa
10-05-2003, 10:47
So alte Browser kann man gleich auf eine Textonly Seite umleiten.

Aber da alle möglichen Browserabhängigkeiten rein zu bauen macht nur den Code der Seite größer, unflexibler und unwartbarer.

Außerdem führt das dann zu nicht deckbaren Annahmen.
Zum Beispiel wird in vielen Browserchecks davon ausgegangen, dass das Vorhandensein von document.all einen IE bedeutet.
Schoner Unfug.

Da wird immer geschimpft, es gäbe keinen Standard oder damit keine Möglichkeit was ordentliches zu machen, aber das Hauptproblem besteht darin, dass es niemand benutzt, sonder kranke Hacks.

Ciao,
_

bischi
10-05-2003, 13:14
Wenn du mit Java-Skript arbeitest, musst du meist sowieso mehrere Seiten machen: Denn einige Browser verstehen kaum JS, IE und Netscape verstehen nicht die gleichen Sachen, ...

Hab bis jetzt leider auch noch keine brauchbare Referenz gefunden, die einem sagen würde, wer was unterstützt. Hab mir deswegen auch schon überlegt, auf PHP oder ähnliches umzusteigen.

MfG Bischi