Java-Script в загруженном через ajax div`е

I
На сайте с 04.08.2006
Offline
112
6226

Здравствуйте. Возникла проблема.

На странице контент загружается через аякс, вот функция:

function showContent(link) { 


var cont = document.getElementById('contentBody');
var loading = document.getElementById('loading');

cont.innerHTML = loading.innerHTML;

var http = createRequestObject();
if( http )
{
http.open('get', link);
http.onreadystatechange = function ()
{
if(http.readyState == 4)
{
cont.innerHTML = http.responseText;
}
}
http.send(null);
}
else
{
document.location = link;
}
}

// создание ajax объекта
function createRequestObject()
{
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}

На странице выводиться через <div id="contentBody"></div>

Подгружается форма, и мне нужно в другой скрипт отослать данные аякс запросом с этой формы, и вернуть результат, тоесть заменить <div id="contentBody"></div> следующим ответом.

Но никак не получается что бы в середине этого дива (контент который подгрузился) заработ ява скрипт, или решение для отправки постом данных.

Использую вот такой вариант:

$ajax .= '

<script type="text/javascript" src="moduls/ajax/form.js"></script>
<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>
';
ob_start();
require ('moduls/ajax/type/trucks.php');
$ajax .= ob_get_contents();
ob_end_clean();
$ajax .= '
<script type="text/javascript">
$(document).ready(function(){
$("#searchCar").ajaxForm(function() {
alert("Спасибо за комментарий!");
});
});
</script>
';

- это страница которая подгружается.

$ajax - тут форма с ид searchCar

Также пробовал выносить ява скрипты в главный файл, который открывается без аякса. Но ничего не вышло.

Пробовал

<script type="text/javascript" src="moduls/ajax/form.js"></script> 

<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>

Ставить и в главный файл, и в файл который подгружается через аякс, результата нет.

Инновационный автомобильный проект. Экономия от 500 - 3000$ при покупке автомобиля (http://autoline24.com.ua) Магазин-блог уникальных полезных скриптов (http://ivashka.org.ua)
DriverCat
На сайте с 10.04.2008
Offline
116
#1
ivashka:
Здравствуйте. Возникла проблема.
На странице контент загружается через аякс, вот функция:
function showContent(link) { 


var cont = document.getElementById('contentBody');
var loading = document.getElementById('loading');

cont.innerHTML = loading.innerHTML;

var http = createRequestObject();
if( http )
{
http.open('get', link);
http.onreadystatechange = function ()
{
if(http.readyState == 4)
{
cont.innerHTML = http.responseText;
}
}
http.send(null);
}
else
{
document.location = link;
}
}

// создание ajax объекта
function createRequestObject()
{
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}


На странице выводиться через <div id="contentBody"></div>
Подгружается форма, и мне нужно в другой скрипт отослать данные аякс запросом с этой формы, и вернуть результат, тоесть заменить <div id="contentBody"></div> следующим ответом.

Но никак не получается что бы в середине этого дива (контент который подгрузился) заработ ява скрипт, или решение для отправки постом данных.
Использую вот такой вариант:

$ajax .= '

<script type="text/javascript" src="moduls/ajax/form.js"></script>
<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>
';
ob_start();
require ('moduls/ajax/type/trucks.php');
$ajax .= ob_get_contents();
ob_end_clean();
$ajax .= '
<script type="text/javascript">
$(document).ready(function(){
$("#searchCar").ajaxForm(function() {
alert("Спасибо за комментарий!");
});
});
</script>
';


- это страница которая подгружается.
$ajax - тут форма с ид searchCar
Также пробовал выносить ява скрипты в главный файл, который открывается без аякса. Но ничего не вышло.

Пробовал
<script type="text/javascript" src="moduls/ajax/form.js"></script> 

<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>

Ставить и в главный файл, и в файл который подгружается через аякс, результата нет.

Чтобы заработал javascript код, подгруженный ajax, подгружать html код вместе с javascript нужно, как описывает автор здесь: http://reposlav.livejournal.com/2480.html, если конечно он подгружается не с помощью jquery (тогда смотрите недавние ветки - там было это решение тоже).

T.R.O.N
На сайте с 18.05.2004
Offline
314
#2
ivashka:
Но никак не получается что бы в середине этого дива (контент который подгрузился) заработ ява скрипт

так и должно быть. Ведь Вы вставляете текст. Самое быстрое решение, это полученный ответ от сервера распарсить на текст и скрипт и скриптовую часть выполнить через eval.

Естественно, если скрипты подгружаемые, они должны быть подгружены в основном html а не в полученном через аякс.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий