Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Problem z innerHTML
Forum PHP.pl > Forum > Przedszkole
erjot90
Witam,

Sprawdzając czy moja strona działa we wszystkich przeglądarkach napotkałem się na błąd
chodzi dokładnie o takie coś:
  1. <script language="javascript">
  2. document.getElementById('czas').innerHTML = 'adasdas';
  3. <span id="czas"></span>

W Firefox działa git ale w IE nie sad.gif nie wiem czemu sad.gif pomocy! smile.gif
Kszyhuu
IE ogólnie ssie. Walnij coś w stylu:
<!--[if lt IE 8]><link href=DOMENAl/css/infobar.css rel=stylesheet>
<div id=infobar><a href=http://browsehappy.pl/>
Uwaga: Internet Explorer nie jest w stanie poprawnie wyświetlić tej strony. Kliknij aby rozwiązać problem...
</a></div><div id=viewplot><script src=DOMENA/js/infobar.js></script><![endif]-->

CSS:
CODE
@media screen{
#viewplot{
padding:0; /* << Tutaj ustaw margines jak dla <body> */
width:100%;
height:95%;
overflow:auto;
height:expression(this.parentNode.offsetHeight-this.offsetTop);
position:relative
}
html{
border-top:0;
border-left:0;
border-bottom:0;
overflow:hidden
}
body{
margin:0;
padding:0;
overflow:hidden;
height:100%
}
#infobar{
width:100%;
font:normal 8pt/1 "MS Sans Serif"
}
#infobar a{
display:block;
font:message-box;
height:1%;
color:white;
background:red url(OBRAZEK) no-repeat fixed .33em .2em;
padding:.45em .3em .45em 2.3em;
border-bottom:.16em outset;
text-align:left;
text-decoration:none;
cursor:default
}
#infobar a{
font-size:8pt;
letter-spacing:0
}
#infobar a:hover{
color:HighlightText;
background-color:Highlight
}
}
#infobar b{
position:absolute;
right:5px;
top:3px;
font-size:11px;
font-family:webdings;
cursor:hand
}
@media print{
#infobar{
display:none
}
}


JS:
CODE

(function(){if (Math.random()*10>(infobar.s||10))infobar.style.display='none';var I=infobar.runtimeStyle,V=viewplot.runtimeStyle;I.top=infobar.offsetHeight*-1;I.left=V.top=V.left=0;V.position=I.position="absolute";var T=setInterval(function(){var N=parseInt(infobar.currentStyle.top),M=-N;if(M>0){M=M>5?5:M;I.top=N+M;V.top=parseInt(V.top)+M}else{clearInterval(T);I.position=V.positio
n="";V.top='0'}},40);infobar.innerHTML='<b onclick="infobar.style.display=\'none\';viewplot.height=\'100%\'">r</b>'+infobar.innerHTML;infobar.onclick=function(){infobar.all.tags("a")[0].innerHTML='Trwa otwieranie strony informacyjnej...'}})()

erjot90
sory ale ja nie rozumiem po co mi to?
erix
~Kszyhuu, masz coś do powiedzenia w temacie, czy chcesz dostać moderkę za spamowanie?

Cytat
W Firefox działa git ale w IE nie

Bo IE wykonuje instrukcję nieco szybciej; zamień miejscami span ze skryptem i będzie działać. Albo - najlepiej - użyj zdarzeń onload/DOMContentLoaded.
nitek
tu jest rozwiązanie twojego problemu: http://domscripting.com/blog/display/99
erjot90
no dobra zrobiłem tak:
  1. <body onLoad="Data_i_czas();">
  2. <span id="czas"></span>
  3. <span id="data"></span>
  4. </body>

a ta funkcja Data_i_czas() to:
  1. function Data_i_czas()
  2. {
  3. data = new Date();
  4. var month=data.getMonth();
  5. var day=data.getDate();
  6. var year=data.getFullYear();
  7. month+=1;
  8. if(day<10)
  9. {
  10. day="0"+day;
  11. }
  12. if(month<10)
  13. {
  14. month="0"+month;
  15. }
  16. s_data = day + "/" + month + "/" + year;
  17. //document.getElementById('data').innerHTML = s_data;
  18.  
  19. var hour=data.getHours();
  20. var minute=data.getMinutes();
  21. if(hour<10)
  22. {
  23. hour="0"+hour;
  24. }
  25. if(minute<10)
  26. {
  27. minute="0"+minute;
  28. }
  29. s_czas = hour + ":" + minute;
  30.  
  31. div = document.getElementById("czas").innerHTML = s_czas;
  32.  
  33. div.appendChild(div);
  34.  
  35. // div = document.getElementById('czas').innerHTML = ;
  36. // div.appendChild(div);
  37. setTimeout("Data_i_czas()", 1000);
  38. }

no i nadal w ie nie działa
nitek
moje pierwsza podpowiedź była trochę nieprecyzyjna (późna godzina już winksmiley.jpg)
a @Erix proponował ci raczej coś takiego:

Kod
<span id="czas"></span>
<span id="data"></span>
<script  type="text/javascript">
Data_i_czas();
</scirpt>


Czyli: najpierw narysuj to, na czym JavaScript ma operować...
erjot90
zrobiłem tak jak radził Nitek ale to nic nie daje sad.gif
nitek
ech.. sprawdziłem twój kod..

w JS daj zamiast:
Kod
data = new Date();


powinno być:
Kod
var data = new Date();


IE jest wrażliwy na poprawną składnie js...
jak to poprawiłem - u mnie zaczęło działać...
erjot90
dzięki wielkie nitek jesteś w porządku gość! smile.gif pozdrawiam winksmiley.jpg wszystko działa jak należy! smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.