Autor Zpráva
Enyeus
Profil
Dobrý den,

dokázal by mi někdo vysvětlit proč se nezmění styl divu?
http://i.katuscak.cz/
<html>
<head>
<script language="javascript">
function ajax (url,id)
{
    var objekt = false;
    var zdroj = url;
    if(window.XMLHttpRequest){objekt=new XMLHttpRequest();}
    else if (window.ActiveXObject) {
     try {
     objekt = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (eror) {
     objekt = new ActiveXObject("Microsoft.XMLHTTP");}
    }
    if(objekt){
        objekt.open("GET",zdroj);
        objekt.onreadystatechange=function(){
            if(objekt.readyState==4 && objekt.status==200){
                document.getElementById(id).innerHTML += objekt.responseText;
            }
        }
        objekt.send(null);
    }
}
window.onload = function () {
  ajax('./text.txt','page');
  ajax('./styl.txt','page');
}
</script>
</head>
<body>
<div id="page"></div>
</body>
</html>

text.txt:
<div id="1">
Lorem ipsum
</div>

styl.txt:
<script language="javascript">
document.getElementById('1').style = 'position:absolute;top:100px;left:50px;';
</script>


Díky
Chamurappi
Profil
Reaguji na Enyea:
Protože <script>y vložené přes innerHTML se nevykonávají.
Enyeus
Profil
Problém je v tom že i když udělám
index:
<html>
<head>
<script language="javascript">
function ajax (url,id)
{
    var objekt = false;
    var zdroj = url;
    if(window.XMLHttpRequest){objekt=new XMLHttpRequest();}
    else if (window.ActiveXObject) {
     try {
     objekt = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (eror) {
     objekt = new ActiveXObject("Microsoft.XMLHTTP");}
    }
    if(objekt){
        objekt.open("GET",zdroj);
        objekt.onreadystatechange=function(){
            if(objekt.readyState==4 && objekt.status==200){
                document.getElementById(id).innerHTML += objekt.responseText;
            }
        }
        objekt.send(null);
    }
}
window.onload = function () {
  ajax('./text.txt','page');
  document.getElementById('1').style = 'position:absolute;top:100px;left:50px;';
}
</script>
</head>
<body>
<div id="page"></div>
</body>
</html>

Tak to také nejde. Chrome napíše že "Uncaught TypeError: Cannot set property 'style' of null". Já totiž potřebuju vyřešit to, že když nejdřív nahraju objekty z databáze přes AJAX, tak jim potom potřebuju dát také "style" přes AJAX.
Chamurappi
Profil
Reaguji na Enyea:
To áčko v AJAXu znamená asynchronní. V době, kdy se snažíš přiřazovat styl elementu s id="1", ještě element s id="1" neexistuje, protože HTML kód s ním se ještě nestáhl — až se stáhne, vyvolá se onreadystatechange.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0