2.Versuch, Ticker funktioniert nicht, warum?
Dietmar Stübing
- dhtml
2.Versuch:
Hallo zusammen,
mittels CSS habe ich verschiedene Ebenen definiert z.B.:
<STYLE TYPE="text/css">
#seite1 {position: absolute; visibility: visible; left: 115px; top: 95px; WIDTH:600px; Z-INDEX:12;}
#seite2 {position: absolute; visibility: hidden; left: 115px; top: 95px; WIDTH:600px; Z-INDEX:12;}
</STYLE>
Diese rufe ich mit absolut positionierten und sich teilweise ueberlappenden dynamischen Buttens auf z.B.:
<DIV ID="austausch" STYLE="POSITION:ABSOLUTE; TOP:94px; LEFT:0px; WIDTH:121px">
<A HREF="javascript:inhaltzeigennummer(1)"><IMG SRC="buttst01.gif" ALT="buttenst.gif (2'250 Bytes)" BORDER="0" WIDTH="120"
HEIGHT="32"></A></DIV>
Dann habe ich die Ebenen gestaltet:
<DIV ID="seite1">
Das ist der Inhalt von Ebene 1
</DIV>
Alles geht gut im IE und NN. Alle Funktionen erfuellen ihre Pflicht. Die Ebenen werden aufgerufen und wieder versteckt.
Nun wollte ich in Ebene1 einen Newsticker einbauen:
Im HEAD-Bereich steht:
<SCRIPT LANGUAGE="JavaScript">
<!--
var newsA="Achtung! Neue Wärmeschutzverordnung ab 1999"
var newsB="--- Optimale Wärmegewinnung wird immer wichtiger ---";
var newsC="--- Mit unseren Produkten erfüllen Sie die neuen Anforderungen! ---";
var a=0;
var b;
var leerzeichen=" ";
var zeichenlaenge1, zeichenlaenge2, zeichenlaenge3;
var news_ausgabe;
for (b=75; b>=0; b--)
{
leerzeichen=leerzeichen+" ";
}
newsA=leerzeichen+newsA;
newsB=leerzeichen+newsB;
newsC=leerzeichen+newsC;
zeichenlaenge1=newsA.length;
zeichenlaenge2=newsB.length;
zeichenlaenge3=newsC.length;
function banner1()
{
a=a+1;
news_ausgabe=newsA.substring(a,zeichenlaenge1);
document.Bannertext.Bannerfeld.value=news_ausgabe;
if (a>=zeichenlaenge1)
{
a=0;
news_ausgabe=" ";
window.setTimeout ('banner2()', 100);
}
else
{
window.setTimeout ('banner1()', 100);
}
}
function banner2 ()
{
a=a+1;
news_ausgabe=newsB.substring(a,zeichenlaenge2);
document.Bannertext.Bannerfeld.value=news_ausgabe;
if (a>=zeichenlaenge2)
{
a=0;
news_ausgabe=" ";
window.setTimeout ('banner3()', 100);
}
else
{
window.setTimeout ('banner2()', 100);
}
}
function banner3 ()
{
a=a+1;
news_ausgabe=newsC.substring(a,zeichenlaenge3);
document.Bannertext.Bannerfeld.value=news_ausgabe;
if (a>=zeichenlaenge3)
{
a=0;
news_ausgabe=" ";
window.setTimeout ('banner1()', 100);
}
else
{
window.setTimeout ('banner3()', 100);
}
}
//-->
</SCRIPT>
Im BODY-Tag rufe ich die Funktion auf:
<BODY onLoad="banner1()">
Der Einbau in Ebene1:
<DIV ID="seite1">
<CENTER><FORM NAME="Bannertext"> <FONT SIZE="+1" COLOR="#0000FF"><STRONG> + + + </STRONG></FONT>
<INPUT TYPE=TEXT SIZE=50 NAME="Bannerfeld"> <FONT SIZE="+1" COLOR="#0000FF"><STRONG> + + + </STRONG></FONT>
</FORM></CENTER>
</DIV>
Der Ticker funktioniert nur im IE, im NN wird nur das leere Formular in der entsprechenden Ebene (Layer) angezeigt.
Wird der Ticker ausserhalb eines jedlichen DIV`s gesetzt, geht er auch im NN. Das kann ich aber nicht machen, weil er dann
immer sichtbar ist.
Den kompletten Code wollte ich hier nicht plazieren. Da alles in einer Datei realisiert werden soll, hat die Datei nat.
schon viele Zeilen.
Danke für die Hilfe!!
Dietmar Stuebing
2.Versuch:
Der Ticker funktioniert nur im IE, im NN wird nur das leere Formular in der entsprechenden Ebene (Layer) angezeigt.
Wird der Ticker ausserhalb eines jedlichen DIV`s gesetzt, geht er auch im NN. Das kann ich aber nicht machen, weil er dann
immer sichtbar ist.
Den kompletten Code wollte ich hier nicht plazieren. Da alles in einer Datei realisiert werden soll, hat die Datei nat.
schon viele Zeilen.
Danke für die Hilfe!!
Hallo Dietmar,
erstens hätte ein Posting gereicht, ich hatte es mir schon aussortiert, um noch etwas zu überprüfen.
Da du aber so ungeduldig bist, mußt du dich mit einer Vermutung, statt einer konkreten Antwort zufrieden geben:
Ich tippe darauf, daß du für den Navi das Formular mit
document.seite1.document.Bannertext.Bannerfeld.value=news_ausgabe;
ansprechen mußt.
Schreib mal ob es so ist.
Viele Grüße
Antje
Hallo Antje,
erstens hätte ein Posting gereicht, ich hatte es mir schon aussortiert, um noch etwas zu überprüfen.
Da du aber so ungeduldig bist, mußt du dich mit einer Vermutung, statt einer konkreten Antwort zufrieden geben:
Ich entschuldige mich für die Ungedult!
Ich tippe darauf, daß du für den Navi das Formular mit
document.seite1.document.Bannertext.Bannerfeld.value=news_ausgabe;
ansprechen mußt.
Schreib mal ob es so ist.
Das ist so. Mein Fehler: document.seite1.Bannertext.Bannerfeld.value=news_ausgabe;
Nun will aber der IE nicht mehr. Ich brauche also noch eine Browserabfrage. Oder?
Nochmals besten Dank und das nächste Mal nur ein Posting.
Gruß Dietmar.
Hallo Dietmar,
Ich entschuldige mich für die Ungedult!
gut, damit ist es geklärt :-)
Ich tippe darauf, daß du für den Navi das Formular mit
document.seite1.document.Bannertext.Bannerfeld.value=news_ausgabe;
ansprechen mußt.
Das ist so.
Nun will aber der IE nicht mehr. Ich brauche also noch eine Browserabfrage. Oder?
ja genau, am besten mit if (document.layers) Navi_Variante; else IE_Variante
Die kleinen Browser wie IE3 und Navi3 verarbeiten ja das Dokument auf die übliche Art und Weise.
Viele Grüße
Antje
Nocheinmal Hallo Antje,
Nur zur Info:
Nun will aber der IE nicht mehr. Ich brauche also noch eine Browserabfrage. Oder?
ja genau, am besten mit if (document.layers) Navi_Variante; else IE_Variante
Ich habe es so gemacht:(wird von beiden Browsern verarbeitet)
if (navigator.appName=='Microsoft Internet Explorer') {
document.Bannertext.Bannerfeld.value=news_ausgabe;
}
if (navigator.appName=='Netscape')
{
document.seite1.document.Bannertext.Bannerfeld.value=news_ausgabe;
}
Die kleinen Browser wie IE3 und Navi3 verarbeiten ja das Dokument auf die übliche Art und Weise.
Bis irgendwann
Dietmar