Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка jquery сценария через XMLHttpRequest 
:(
    Опции темы
chiffa
Дата 16.8.2013, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: нет
Всего: -1



Всем добрый день. Есть скрипт который загружает через Ajax html-страничку. Приблизительный код:

Код

function appendData(data_str, parent_node, mode)
{
    appendData.js_store='';
    
    data_str =data_str.replace(/<script.*?>((.|[\r\n])*?)<\/script>/ig,appendData.handle);

    if(parent_node)
        if (mode == 'append') {
            parent_node.innerHTML += data_str;
        } else {
            parent_node.innerHTML = data_str;
        }
    if(!!appendData.js_store)
        try{
            // alert(appendData.js_store) ;
            if(window.execScript) {
                window.execScript(appendData.js_store, "javascript");
            } else {
                eval.call(window, appendData.js_store)
            }
        } catch(e){}; 
}
appendData.handle=function($0,$1)
{
    appendData.js_store+='\n'+$1; 
    return '';
}

function load_html (x, y) {
    
    
    
    var dpar1 = '<? echo time(); ?>';
    if(window.XMLHttpRequest) {
        try { req1 = new XMLHttpRequest(); }
        catch (e){}}
    else if(window.ActiveXObject) {
        try { req1 = new ActiveXObject('Msxml2.XMLHTTP'); }
        catch (e){ req1 = new ActiveXObject('Microsoft.XMLHTTP'); }}
    req1.onreadystatechange = function() {
        if(req1.readyState == 4) {
            
            ajax_load_html (req1.responseText);
            
            
            
        }
        
        
    }
    
        
        var params = '';
        
        req1.open("POST", 'modules/page.html' + y, true);
        req1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        req1.send(params);
    
    
    
        
    
}

function decodeURIComponent( str ) {
    var out = '', arr, i = 0, l, x;
    arr = str.split(/(%(?:D0|D1)%.{2})/);
    for ( l = arr.length; i < l; i++ ) {
        try {
            x = decodeURIComponent( arr[i] );
        } catch (e) {
            x = arr[i];
        }
        out += x;
    }
    return out
}

function ajax_load_html (x) {
   
    appendData(decodeURIComponent(x), document.getElementById("html_it"));
}



Загружаемая страница (page.html) содержит jquery сценарий с запуском таймера.

Код

    <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
    <script src="js/jquery.countdown.js" type="text/javascript"></script>


<script type="text/javascript">
        
timer_time_now = 5;
        
        $(function () {
          
          
          
          alert ('111');
          
         $slider = $("#Slider1").slider({
                                         min: 5,
                                         max: 60,
                                         value: timer_time_now,
                                         create: function (event, ui) {
                                         $("#minutes").html(ui.value);
                                         var state = document.getElementById("Slider1-handler").style.left;
                                         $("#Slider1-fill").css("width", state);
                                         },
                                         slide: function (event, ui) {
                                         var state = document.getElementById("Slider1-handler").style.left;
                                         $("#Slider1-fill").css("width", state);
                                         $("#minutes").html(ui.value);
                                         }
                                         });
          
          alert ('222');
          
          $('#Slider1').draggable();
          $("#minutes").html(timer_time_now);
          });
        
        
        
        
        </script>



Если я обращаюсь к странице напрямую через браузер то займер запускается нормально и я получаю два алера 111 и затем 222. За загрузке через Аджакс таймер не запускается и выводится только один алерт - 111. Проблемы возникают именно при передачи содержимого через 
XMLHttpRequest. 

КТо сталкивался с подобной проблемой подскажите как правильно реализовать выше изложеную задачу! Заранее спасибо!
PM MAIL   Вверх
DEER
Дата 21.8.2013, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: 2
Всего: 13



Нет ошибки в логе никакой при ajax загрузке?


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
akizelokro
Дата 4.9.2013, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 2
Всего: 5



Все варианты некоей многопоточности нужно скидывать на WebWorker. 


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.