| Autor | Zpráva | ||
|---|---|---|---|
| Enyeus Profil |
#1 · Zasláno: 6. 6. 2011, 17:01:12
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 |
#2 · Zasláno: 6. 6. 2011, 17:19:48
Reaguji na Enyea:
Protože <script>y vložené přes innerHTML se nevykonávají.
|
||
| Enyeus Profil |
#3 · Zasláno: 6. 6. 2011, 18:00:49 · Upravil/a: Enyeus
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 |
#4 · Zasláno: 6. 6. 2011, 18:13:55
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.
|
||
|
Časová prodleva: 14 let
|
|||
0