Welcome, Guest. Please login or register.
Did you miss your activation email?
July 09, 2008, 06:16:12 am
42749 Posts in 8091 Topics by 17932 Members
Latest Member: codder
Turk-Php.Com Forum  |  Yardım Forumları  |  HTML & JavaScript & XML Forumu  |  AJAX  |  Ajax ile getirilen sayfadaki javasctipt çalışmıyor! « previous next »
Pages: [1] Print
Author Topic: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!  (Read 1141 times)
zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« on: October 29, 2006, 10:37:58 am »

mrb arkadaşlar; bir sayfaya ajax ile başka bir sayfanın içeriğini getiriyorum. ama getirdiğim içerikteki javascript nedense çalışmıyor. normalde çağırdığım sayfayı tek başına açtığımda sorun yok, ama aynı sayfayı ajax ile çağırınca javascript çalışmıyor. kodları ekliyorum;

bu ana sayfa, yani ajax ile bu sayfanın içine div1.php adlı sayfayı çağırıyorum.
Code:
<script>
function createRequestObject()
{
var conn;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
conn = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
conn = new XMLHttpRequest();
}
return conn;
}

var http = createRequestObject();

function sayfa(action)
{

http.open('get', 'div1.php?act='+action);
http.onreadystatechange = handleResponse;
http.send(null);
}

function handleResponse()
{
document.getElementById('pages').innerHTML="<br><center>işlem yapılıyor</center><br>";
if(http.readyState == 4)
{
        var response = http.responseText;
document.getElementById('pages').innerHTML = http.responseText;
    }
}
</script>
<div id="pages">
<table width="6%" border="1">
  <tr>
<td><input name="testButton" type="button" id="testButton" style="font-size:12; color:red; background-color:#D6E2F5; border:hidden; border-width:thin" value="Sayfa" onClick="sayfa('index')"></td>
  </tr>
  </table>
</div>
bu da div.php

Code:
<?php
/* if(!isset($_GET['act']))
{
die('giriş yok');
}*/
?>

<script>
var saniye = 5;
function ferheng()
{
if(saniye>0)
{
document.getElementById("zaman").innerHTML ="<b><font color=green> " + saniye + " </b></font>";
saniye = saniye - 1;
setTimeout("ferheng()", 1000)
}
else
{
document.getElementById("zaman").innerHTML = "<font color=red>Süreniz Doldu!</font>";
}
}
</script>
</head>
<body onload="javasctipt:ferheng();">
Zaman:
<div id="zaman"></div>
sorun ne olabilir acaba?
Logged

engin
Admin
*
Offline Offline

Posts: 496



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #1 on: October 29, 2006, 11:54:43 am »

alert ile ajax request'den sonra cevap geliyor mu ve beklenildiği şekilde mi öğrenir misin?
bunun için http debugger'da kullanabilirsin
Logged

Engin Dumlu
engin ~ turk-php.com
achilles ~ member.turk-php.com
zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #2 on: October 29, 2006, 12:45:31 pm »

evet request ten cevap alabiliyorum, javascript in çalışmadığı sayfada herhangi birşey yazınca sonuç alınıyor, zaten yukarıda eklediğim haliyle almak istediğim sonuç "Zaman: 7" gibi birşey, buradan "Zaman:" geliyor ama 7 (bu değer javascript sonucu oluşuyor.) gelmiyor. şu an debug yapma olanağım da yok maalesef.
Logged

engin
Admin
*
Offline Offline

Posts: 496



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #3 on: October 29, 2006, 02:46:21 pm »

div.php çıktısında body ve head etiketlerinin ne işi var?
gelen veri iframe ile alınsa body'de onload fonksiyonu çalışacaktır.. ancak sen xmlhttprequest'i kullanmışsın
innerHTML ile script içeriğini eklediğinde ordaki javascript kodları zaten çalışacaktır
ayrıca "Zaman:" diye gelmesi çok normal değil mi?
javascript ile yapmıyorsan div.php'de "zaman"ın karşısına veri yazan hiçbir kodun yok
Logged

Engin Dumlu
engin ~ turk-php.com
achilles ~ member.turk-php.com
zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #4 on: October 29, 2006, 03:01:55 pm »

div.php de headin olması kodu etkilemiyor, yani request sonucu başka bir sayfanın içeriğini alabiliyor olmam lazım normal şartlarda. div.php de head, body taglarının varlığı pek etkilemedi, zaten body ferheng() adlı fonksiyonu onload ile başlatmak için kullandım. iframe ile yaparsam sorun yok zaten, ama bunu ajax ile yapmam lazım.  "Zaman:" yazısı geliyor, bunu request sonucu veri alabildiğimi söylemek için ekledim. div.php de "Zaman:" bir satır altında 7 den 1 e doğru azalan bir sayaç olması gerekiyor, ama yok Smiley ayrıca debug da yaptım ama hiçbir hata almadım, debugun ikinci adımında yani request sonucu gelen veriyi normal html sayfası olarak deniyorum oluyor, ama bunu request sonucu ilk sayfada almaya çalışınca sonuç yok maalesefff.
Logged

zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #5 on: October 29, 2006, 03:07:03 pm »

sanırım request sonucu veri almaya çalıştığım sayfada ne tür bir javascript olursa olsun çalışmıyor.

Code:
<script>
document.write ("herhangi");
</script>
sayfada bu kod olsa bile sonuç yok, ama sayfaya
Code:
herhangi
yazınca çalışıyor. burdan request yaptığım sayfada javascript çalıştıramayacağım anlamı çıkıyor:) saçma Roll Eyes
Logged

engin
Admin
*
Offline Offline

Posts: 496



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #6 on: October 29, 2006, 03:16:22 pm »

fonksiyonu tetikleme yöntemin yanlış gibi görünüyor
kodun çalıştığı adresi gönderirsen debug yapıp nedenini yazabilirim
Logged

Engin Dumlu
engin ~ turk-php.com
achilles ~ member.turk-php.com
zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #7 on: October 29, 2006, 03:22:07 pm »

kodu online bir yerde kullanmıyorum henüz. sorun veri almaya çalıştığım sayfadaki javascriptte oluyor, o sayfada herhangi başka bir yazı olunca sonuç var (birinci sayfadaki istek kesinlikle gönderiliyor.), ama print yapan javascript kodu bile sonuç vermiyor. ilginiz için teşekkürler.
Logged

engin
Admin
*
Offline Offline

Posts: 496



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #8 on: October 29, 2006, 03:54:17 pm »

http://www.e-php.net/zombie/
sunucudan javascript kodu alıp çalıştırmanın çeşitli yöntemleri var
tarayıcılar javascript ile işlem yaparken şaşırtıcı davranabiliyor
Logged

Engin Dumlu
engin ~ turk-php.com
achilles ~ member.turk-php.com
zombie
Global Moderatör
*
Offline Offline

Posts: 940



View Profile
Ynt: Ajax ile getirilen sayfadaki javasctipt çalışmıyor!
« Reply #9 on: October 29, 2006, 04:06:37 pm »

çok doğru. eklediğiniz kod çalışıyor,  bi inceleyeyim. vaktinizi ayırdığınız için çok teşekkürler.
Logged

Pages: [1] Print 
« previous next »
Jump to: