Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Wywyołanie JS z poziomu Ajaxa
Forum PHP.pl > Forum > Przedszkole
sannin
Witam,

jak wywołać javascript jeśli kod jest wczytywany za pomocą ajaxa przez request? Po wstawieniu czegoś takiego
Cytat
window.onload = function(){
var elem = document.getElementById("newsHeight");
var height = elem.offsetHeight;
createCookie('more', height, '');
}
Nie działa, w sumie nie dziwie się bo okno zostało już dawno załadowane. Co muszę dać zamiast
Cytat
window.onload
żeby zadziałało? Z góry dzięki za pomoc smile.gif
erix
Może pokaż, jak wywołujesz żądanie AJAX? Ale jeśli dobrze mi się wydaje, to może spróbuj wywołać bezpośrednio, bez zdarzenia?
sannin
Tak wywołuje plik
Cytat
echo '<script src="public/js/news.js" type="text/javascript"></script>';
a zapytanie
Cytat
var request = new Request({
url: 'ajax.php?newsmore',
method: 'get',
onRequest: function() {
var height = $("newsMain").offsetHeight - 52;
var table = '<table width="100%" height="' + height + '"><tr><td align="center" valign="middle"><img src="public/images/ajax-loader2.gif" /></td></tr></table>';
createCookie('few', height, '');
$('newsMain').set('html', table);
var img = '<img src="public/images/newsFew.jpg" border="0" alt="Zwiń" usemap="#newsFew"/>';
$('newsMore').set('html', img);
},
onComplete: function(response) {
var h = readCookie('more') - 30;

var myFx = new Fx.Elements($$('.newsMain'), {
onComplete: function(){
$('newsMain').set('html',response);
}
}).start({
'0': {
'height': [490]
}
});
}
});
request.setHeader('Content-Type','text/html; charset=utf-8');
request.send();
EarthCitizen
Jeżeli chcesz wywołać załadowany przez request kod JS musisz użyć funkcji eval(/*zmienna*/ kod)
sannin
Jesteś tego pewien? Byłem przekonany że eval służy do czegoś innego. Możesz podać mi jakiś przykład bo w manualu nie znalazłem za wiele.
EarthCitizen
Cytat(sannin @ 19.01.2009, 20:59:01 ) *
Jesteś tego pewien? Byłem przekonany że eval służy do czegoś innego. Możesz podać mi jakiś przykład bo w manualu nie znalazłem za wiele.


Jestem pewny, że funkcja eval() służy do wykonania kodu podanego jako argument. Ja przynajmniej tak jej używam i działa:) Generalnie nie chodziło mi o to, że używając eval() wykona się kod pobrany ajaxem, tylko wykona się każdy poprawny kod, który jest wartością zmiennej podawanej jako argument.

Ja wykonuję tak kod pobrany biblioteką mintAjax i działa bez problemu.
sannin
Możesz podać mi jakiś przykładowy kod jak to robisz smile.gif?
erix
A może JSONP? winksmiley.jpg http://en.wikipedia.org/wiki/JSONP#JSONP

jQuery posiada odpowiednią implementację.
sannin
Korzystam z mootools i on też wspiera tą technologię, ale nie miałem z nią nigdy do czynienia i nie wiem czy dam radę 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.