Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2010, 13:53
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

Заставить работать js подгружаемый AJAX -ом
Здравстсвуйте необходимо заставить работать данный код. Причина мне кажется в том что скрипт который подгружается аяксом не видит обект который ему надо изменять.
Код подгружающий:
<script>
function getAXAH(url,elementContainer) {
    var theHttpRequest = false;
    try {
        theHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
    } catch(e) {
        try {
            theHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
        } catch(e) {
            theHttpRequest = new XMLHttpRequest();
        }
    }
    theHttpRequest.onreadystatechange = function() {processAXAH(elementContainer);};
    theHttpRequest.open("GET", url);
    theHttpRequest.send(false);

    function processAXAH(elementContainer){
	if (elementContainer!='status')
	
	{
		
        if (theHttpRequest.readyState == 4) {
            if (theHttpRequest.status == 200) {
                //document.getElementById(elementContainer).innerHTML = theHttpRequest.responseText;
                insertText(theHttpRequest.responseText);
            } else {
                alert('Данные недоступны!');
            }
        }
    }
	
	}
}
function insertText(text) {
document.getElementById('text').innerHTML = text;
var result = text.match(/<script>(.*)<\/script>/im);
if(result) eval(result[1]);
}
setInterval("getAXAH('go.php');", 3000);
</script>
<div id="text"></div>


и подгружаемый код:
Ля ля ля ля ля ля <br />
<span id='ti'>15</span>
<script>var d = document.getElementById('ti'); setInterval('d.innerText--;', 1000);</script>
<br />Ля ля ля ля ля ля


Из этого мы видим что нужно сделать чтоб счетчик на странице отсчитывал время.
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2010, 14:23
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

eval()
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2010, 14:32
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

function insertText(text) смотрите функцию.
Вы не посмотрев код даете ответ.
допишем алерт
<script>var d = document.getElementById('ti'); setInterval('d.innerText--;', 1000); alert('kz');</script>

алерт вывелся значит не в ту сторону глядим.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2010, 14:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,592

Протейшее решение - не использовть innerText, а использовать обыкновенную пременную для отщёта, темболее innerText ничуть не кроссбраузерное свойство.
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2010, 14:51
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

Aetae преедложите вариант кода, почему то мне кажется что он не подойдет мне в данном случае.

Опишу случай: сделал сначала подгрузку данных аяксом раз в секунду. Данные динамические кончилось время они пропали. в одной из переменных выводимых хранилось время которое сравнивалось с текущим временем и таким путем получался отсчет. то есть из времени хранимом в базе вычиталось текущие и определялось сколько осталось. Данный вариант конечно рабочий но у него есть минусы, один из минусов в том что канал в интернет может быть не слишком быстым и стабильным и такой вывод остатка начинал бы тормозить. Решено сделать по другому, но малой кровью чтоб не переделывать основу системы.
а именно так:
Подгружаем данные получаем оставшееся время и отсчитываем его js скриптом и перезагрузку данных ставим раз в 5 секунд а то и больше. что уменьшит на грузку на хост и избавит от тормозов времени.
Ответить с цитированием
  #6 (permalink)  
Старый 17.04.2010, 15:37
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Да и 5 секунд много. Пожалей модемщиков.
Ответить с цитированием
  #7 (permalink)  
Старый 17.04.2010, 15:51
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

Много не много это уже другой вопрос сейчас не о нем. Давайте все же заставим это работать я с утра не смог найти решение и обратился за помощью к вам.
Ответить с цитированием
  #8 (permalink)  
Старый 17.04.2010, 16:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,592

А зачем обязытельно создавать js динамически?
Просто добавить примерно такой код:
d = document.getElementById('ti');
i=parseInt(theHttpRequest.responseText,10); //аяксом получать только число
function a(){ if(i--) {d.innerHTML=i;setTimeout(a, 1000);}}
a();

а
<span id='ti'>15</span>
гденить на странице уже иметь.


Хотя конечно можно и извращённо-динамически, но зачем?

Последний раз редактировалось Aetae, 17.04.2010 в 16:42.
Ответить с цитированием
  #9 (permalink)  
Старый 17.04.2010, 17:15
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

Тут кроме чисел идет еще название с картнкой...так что этот вариан к сожалению тоже не подходит.
Ответить с цитированием
  #10 (permalink)  
Старый 18.04.2010, 09:20
Новичок на форуме
Отправить личное сообщение для DeMONiZ Посмотреть профиль Найти все сообщения от DeMONiZ
 
Регистрация: 17.04.2010
Сообщений: 8

Неужели все такие перевились умельцы на руси.....не поверю...
Хорошо давайте так, за вознагрждение небольшое!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js + ajax проблемы insy AJAX и COMET 0 04.04.2010 14:58
как заставить jQuery работать с переменными gooody jQuery 1 19.02.2010 13:10
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
Как заставить работать оперу и мозилу? SDone AJAX и COMET 6 25.02.2009 16:05
ajax запрос с подгружемным js HelpeR AJAX и COMET 1 27.10.2008 12:44