• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

ticker im positionierten div und Netscape 4

Jorainbo

New member
Hallo zusammen,

habe mir folgendes Ticker-Scriptvon Michaels Mailer´s seite geladen.

<script language="JavaScript">
<!--
var max=0;
function textlist()
{
max=textlist.arguments.length;
for (i=0; i<max; i++)
this=textlist.arguments;
}

tl=new textlist
(
" Vorwort: Willkommen auf js.Welt.de.",
" Durchsuchen Sie diese Website",
" FAQ zu allen möglichen Sachen!",
" Ich hoffe es gefählt ihnen hier !"
)
;

var x=0; pos=0;
var l=tl[0].length;

function textticker()
{
document.form1.textfeld.value=tl[x].substring(0,pos)+"_";

if(pos++==l)
{
pos=0;
setTimeout("textticker()",5000);
x++;
if(x==max)
x=0;
l=tl[x].length;
} else
setTimeout("textticker()",50);
}
// -->
</script>


es läuft auch einwanfrei unter NS6, MSIE 6 und Netscape 4.7. Sobald ich das Textfeld aber in ein positioniertes <div> stelle, bekomme ich im Netscape 4 die Fehlermeldung
"document.form1 has no properties".

Wie muss des Script angepasst werden, dass es im Netscape 4.7 auch im positionierten <div> läuft?

Vielen Dank schonmal für die Hilfe
und viele Grüße

Jorainbo
 
ach so...

also folgendes gehört noch zu dem Script:

Aufruf im <body>

< body onload="textticker()">


Aufruf auf der Seite:


<form name="form1">
<input type="text" size=45 name="textfeld" style="width:500px; font-weight: bold; color: #000060; background-color: white; font-family: Arial,Helvetica,MS Sans Serif; font-size: 9pt;">
</form>

form1 ist also nur der name des <form> tags auf der Seite und findet sich dann im Script
wieder in der funktion textticker :

function textticker()
{
document.form1.textfeld.value=tl[x].substring(0,pos)+"_";
....

wie gesagt, es geht auch wunderbar, bis ich dieses

<form name="form1">
<input type="text" size=45 name="textfeld" style="width:500px; font-weight: bold; color: #000060; background-color: white; font-family: Arial,Helvetica,MS Sans Serif; font-size: 9pt;">
</form>

auf der Seite in ein positioniertes <div> setze...solange das <div> nicht positioniert ist geht es problemlos....sobald es positioniert wird heisst es aber "document.form1" has no properties...

Gruss
Jorainbo
 
Ja klar,

du musst dann das Formular in seinem Layer ansprechen, etwa so:

document.layername.forms1.textfeld.value=tl[x].substring(0,pos)+"_";

ich weiß aber nicht ob das auch Browserübergreifend funzt, ist auf jeden Fall der richtige Ansatz.
 
danke für den tip, habe dem <div> nun nen namen gegeben (habs über "id" und "name" probiert) und versucht den so anszusprechen, bekomme dann aber die gleiche fehlermeldung und es tut dann im MSIE 6 und Netscape 6 auch nicht mehr....
 
Hab ich erwartet

Du wirst eine Browserunterscheidung machen müssen,

NS6 document.get ElementById('LAYERNAME').....
IE document.all.layername...
NS4 document.layername...

IE erkennst du mit if (document.all)
NS4 mit if (documetn.layers)
und NS6 mit if (document.getElementById&&!document.all)
 
super, es geht nun:

Folgender Aufruf bringt es bei Netscape 4 zum laufen:

Was ich bisher immer vergessen hatte war das zweite "document".
Zusammen mit der Browserabfrage funzt es wunderbar...


document.divname.document.form1.textfeld.value=tl[x].substring(0,pos)+"_";

Danke und Gruss
Jorainbo
 
Zurück
Oben