Avatar billede bbe1379 Nybegynder
11. august 1999 - 13:50 Der er 11 kommentarer og
1 løsning

Ur, der ikke virker i NN

Hvorfor virker dette ikke i Netscape??

<script language="JavaScript">
<!-- Begin
var day="";
var month="";
var myweekday="";
var year="";
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getYear();
year = myyear
if(myday == 0)
day = " Sunday, "
else if(myday == 1)
day = " Monday, "
else if(myday == 2)
day = " Tuesday, "
else if(myday == 3)
day = " Wednesday, "
else if(myday == 4)
day = " Thursday, "
else if(myday == 5)
day = " Friday, "
else if(myday == 6)
day = " Saturday, "
if(mymonth == 0) {
month = "January "}
else if(mymonth ==1)
month = "February "
else if(mymonth ==2)
month = "March "
else if(mymonth ==3)
month = "April "
else if(mymonth ==4)
month = "May "
else if(mymonth ==5)
month = "June "
else if(mymonth ==6)
month = "July "
else if(mymonth ==7)
month = "August "
else if(mymonth ==8)
month = "September "
else if(mymonth ==9)
month = "October "
else if(mymonth ==10)
month = "November "
else if(mymonth ==11)
month = "December "
// -->
</script>
<script>
  function tick() {
    var hours, minutes, seconds;
    var intHours, intMinutes, intSeconds;
    var today;
    today = new Date();

    intHours = today.getHours();
    intMinutes = today.getMinutes();
    intSeconds = today.getSeconds();

    if (intHours == 0) {
    hours = "00:";
    }

    else if (intHours < 24) {
    hours = intHours+":";
    }

    if (intMinutes < 10) {
    minutes = "0"+intMinutes+":";
    }

    else {
    minutes = intMinutes+":";
    }

    if (intSeconds < 10) {
    seconds = "0"+intSeconds+" ";
    }

    else {
    seconds = intSeconds+" ";
    }

    timeString = hours+minutes+seconds;
    Clock.innerHTML = timeString;
    window.setTimeout("tick();", 100);
  }

  window.onload = tick;
</script>






Skrives med:

<script>
document.write(day)
document.write(" " + month + myweekday + ",  " + "19" + year);
</script>
Avatar billede erikjacobsen Ekspert
11. august 1999 - 14:52 #1
innerHTML er IE4 specifikt. Du har heller ikke defineret Clock.
Avatar billede bbe1379 Nybegynder
11. august 1999 - 15:25 #2
kender du et "realtime-ur", der kan opdatere sig selv (dvs. gå som et alm. ur), som IKKE kører i en tekstbox??
Avatar billede erikjacobsen Ekspert
11. august 1999 - 15:31 #3
Svaret er umiddelbart nej (hvis det skal være til både NN og IE).
... med mindre man laver et hack med m-a-n-g-e layers...

(Idé man laver 10 lag ovenpå hinanden for hvert ciffer i klokkeslettet
og anbringer hver af de 10 bunker ved siden af hinanden, så de danner
et klokkeslet, f.eks. XX:XX (4 bunker). I hvert af de 10 lag står der et
ciffer. Så gør man det relevante lag synligt eller usynligt (se
http://www.erik.jacobsen.org/slb) ... men det er måske det du mener
med en tekstboks)
Avatar billede bbe1379 Nybegynder
11. august 1999 - 15:55 #4
Jeg føler mig lidt truffet dit eksempel ;o))

...dette er en computer...

Jeg kunne ikke se noget ur, men du mente måske bare at du havde brugt layers, der blev synlige/usynlige?????
Avatar billede justincase Nybegynder
11. august 1999 - 17:08 #5
Jeg går ud fra at Clock er et layer der ér blevet evalueret, eller hvad ??

Hvis det er kan du skrive sådan her :

if (document.all) {
  Clock.innerHTML = timeString
}
else if (document.layers) {
  Clock.document.open();
  Clock.document.writeln(timeString);
  Clock.document.close();
}

:)

JustinCase
Avatar billede erikjacobsen Ekspert
12. august 1999 - 01:21 #6
justincase har ret, naturligvis. Ved at aflæse om det er IE4 eller NN4 kan man skrive tekst på den måde i et layer. Min standard reference om bemeldte
emne følger nedenfor.

Mit eksempel ... dette er en computer ... var blot for at vise det med at
gøre lag usynlige.

--- klip ---

Internet Explorer 4.0:

In Explorer, you can access the HTML inside a DIV tag (or any other tag for that matter) by writing:

  document.all.divID.innerHTML = "your new text"

Where divID is the ID of the DIV tag you want to change. You can also write it another way which I prefer more:

  document.all["divID"].innerHTML = "your new text"

This way it evaluates "divID" as a string which will be more useful for making it cross-browser capable.

Netscape Navigator 4.0:

Since each layer is essentially it's own document, it has most of the capabilities that the main document does. Importantly for this lesson you can re-write
what's in that document.

Now to normally re-write a document, you'd use the document.write() command for the text, and the document.close() command to signal that the writing
process has finished:

  document.open()
  document.write("my text here")
  document.close()
Avatar billede jumper Nybegynder
12. august 1999 - 03:56 #7
Brug koden fra Justincase, og sæt den ind istedet.

Færdig arbejde.

Netscape og IE har forskellig opfattelse af DOM, derfor fik du problemer.

Hvis du gerne vil kunne lave DHTMl der virker i både NN og IE, så kig ind på

http://www.dansteinman.com/dynduo

Læs den tutorial, eller download den, og du er godt i gang!

/Thor
Avatar billede bbe1379 Nybegynder
12. august 1999 - 08:06 #8
Nedenstående virker fint i IE....men stadig ikke i NN

<script>
  function tick() {
    var hours, minutes, seconds;
    var intHours, intMinutes, intSeconds;
    var today;
    today = new Date();

    intHours = today.getHours();
    intMinutes = today.getMinutes();
    intSeconds = today.getSeconds();

    if (intHours == 0) {
    hours = "00:";
    }

    else if (intHours < 24) {
    hours = intHours+":";
    }

    if (intMinutes < 10) {
    minutes = "0"+intMinutes+":";
    }

    else {
    minutes = intMinutes+":";
    }

    if (intSeconds < 10) {
    seconds = "0"+intSeconds+" ";
    }

    else {
    seconds = intSeconds+" ";
    }

    timeString = hours+minutes+seconds;
    if (document.all) {
      Clock.innerHTML = timeString
    }
    else if (document.layers) {
      Clock.document.open();
      Clock.document.writeln(timeString);
      Clock.document.close();
    }

    window.setTimeout("tick();", 100);
  }

  window.onload = tick;
</script>
Avatar billede justincase Nybegynder
12. august 1999 - 11:46 #9
Kan vi ikke lige se hvor du har Clock defineret.
Avatar billede bbe1379 Nybegynder
12. august 1999 - 13:13 #10
øøøøøøh, clock er et layer.


<html>
<body bgcolor="#182052" background="back_top.jpg" leftmargin="0" >
<script language="JavaScript">
<!-- Begin
var day="";
var month="";
var myweekday="";
var year="";
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getYear();
year = myyear
if(myday == 0)
day = " Sunday, "
else if(myday == 1)
day = " Monday, "
else if(myday == 2)
day = " Tuesday, "
else if(myday == 3)
day = " Wednesday, "
else if(myday == 4)
day = " Thursday, "
else if(myday == 5)
day = " Friday, "
else if(myday == 6)
day = " Saturday, "
if(mymonth == 0) {
month = "January "}
else if(mymonth ==1)
month = "February "
else if(mymonth ==2)
month = "March "
else if(mymonth ==3)
month = "April "
else if(mymonth ==4)
month = "May "
else if(mymonth ==5)
month = "June "
else if(mymonth ==6)
month = "July "
else if(mymonth ==7)
month = "August "
else if(mymonth ==8)
month = "September "
else if(mymonth ==9)
month = "October "
else if(mymonth ==10)
month = "November "
else if(mymonth ==11)
month = "December "
// -->
</script>
<script>
  function tick() {
    var hours, minutes, seconds;
    var intHours, intMinutes, intSeconds;
    var today;
    today = new Date();

    intHours = today.getHours();
    intMinutes = today.getMinutes();
    intSeconds = today.getSeconds();

    if (intHours == 0) {
    hours = "00:";
    }

    else if (intHours < 24) {
    hours = intHours+":";
    }

    if (intMinutes < 10) {
    minutes = "0"+intMinutes+":";
    }

    else {
    minutes = intMinutes+":";
    }

    if (intSeconds < 10) {
    seconds = "0"+intSeconds+" ";
    }

    else {
    seconds = intSeconds+" ";
    }

    timeString = hours+minutes+seconds;
    if (document.all) {
      Clock.innerHTML = timeString
    }
    else if (document.layers) {
      Clock.document.open();
      Clock.document.writeln(timeString);
      Clock.document.close();
    }

    window.setTimeout("tick();", 100);
  }

  window.onload = tick;
</script>
<form method="GET" action="../search/paging.asp" target="main" name="search">
  <table width="800" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td valign="middle" height="50" width="10"> </td>
      <td valign="middle" align="left" height="50" width="150">&nbsp;</td>
      <td valign="middle" align="left" height="50" width="5">&nbsp; </td>
      <td valign="middle" align="center" height="50" width="150"><font size="1"></font></td>
      <td align="center" height="50">&nbsp;</td>
      <td height="50" width="200"><br>
      </td>
  </tr>
</table>

<table width="800" border="0" cellspacing="0" cellpadding="0">
  <tr nowrap valign="middle">
    <td width="5"> </td>
    <td width="200"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">

      <script>
document.write(day)
document.write(" " + month + myweekday + ",  " + "19" + year);
</script>


      </font> </td>
      <td width="180"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">
        <div id=Clock></div>
        </font></td>
      <td width="250" colspan="2"> <font size="1"> <font face="Verdana, Arial, Helvetica, sans-serif">
        <input size="15" style="font-size: 10; font-family: geneva, arial" type="text" name="search">
        </font></font> </td>
      <td width="310">&nbsp;</td>
    <td width="50">&nbsp;</td>
  </tr>
</table>
    </form>
<p>&nbsp;</p>
</html>
Avatar billede justincase Nybegynder
12. august 1999 - 13:43 #11
Ja ok. Netscape behandler ikke <div> som et layer hvor du kan udskifte indholdet i det uden at det har en defineret style med position:absolute. Det gi'r dog det problem at layerer bliver placeret absolut i forhold til dokumentets 0,0 pos.
Der er en tag der hedder <ILayer> som placeres relativt.
Jeg kigger lige om jeg ikke kan grave noget op.
Avatar billede justincase Nybegynder
12. august 1999 - 14:18 #12
Hmmmmm....... Det ser ikke ud som om document objektet virker som det skal i ILayer. Men når du nu i forvejen bruger DHtml, hvorfor så ikke placere dato, tid og søgefelt med <div style="position:absolute">
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester