• Страница 1 из 1
  • 1
Модератор форума: Dimitro, LightInDarkness  
ajax/javascript/css
Quintessence
Центурион
Народ, нужен совет по яваскрипту.
Вопрос таков:
- Как сделать яваскрипт подгруженный во фрейм (DOM) видимым в подгружаемом html коде.
Пояснение:
Для создания фрейма использую вот эти функции:
Код

function showContent(link, pos, type) {   
         var cont = document.getElementById(pos);   
         var loading = document.getElementById('". AJAX_LOADER_ID ."');   
   var sorry = document.getElementById('". SORRY_HTML_ID ."');
   var title = document.getElementById('title').innerHTML;
         cont.innerHTML = loading.innerHTML;  
    
         var http = createRequestObject();   
         if( http )    
         {   
             http.open('get', './". AJAX_LOADER_PARSER .".php?req='+type+'&module='+link);   
             http.onreadystatechange = function ()    
             {   
                 if(http.readyState == 4)    
                 {   
                     cont.innerHTML = http.responseText;
                 }   
             }   
             http.send(null);       
         }   
         else    
   {
    cont.innerHTML = sorry.innerHTML;
   }
  }
     // создание 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; }   
             }   
         }
     }


В подгружаемом html:
Код

function setEmail(){
   var email = document.getElementById('new_email').value;
    if(email != ''){
     showContent('cp&manage=account&action=setnewemail&new_email='+email, '". AJAX_LOAD_FRAME ."', 'content');
    }else{
     alert('Введите новый E-Mail');
    }
  }

Проблема в том, что если второй скрипт находится в родительском документе, то он работает; если в созданном, то нет.
Вот такие дела. Что я делаю не правильно?
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 1 написано 29.01.2013 в 20:35
gmltA
Сержант
Не понял вопроса, но в родительский документ можно получить доступ из фрейма, написав parent.function(); или parent.var = value; где function и var соответственно функция и переменная из документа, в который встроен фрейм.

Добавлено (29.01.2013, 21:51)
---------------------------------------------
Да и что это за мазохизм? Понимаю через фрейм делать асинхронный аплоад файлов, но вот аякс через него гонять... фабрика велосипедов прямо.

CellCore development team
Сообщение # 2 написано 29.01.2013 в 21:51
Quintessence
Центурион
gmltA, проблема таки в обратном, в родительский можно обратиться и через document.function();
Проблема в том, что подгруженая страница, несущая в себе скрипт и форму, не видит скрипт находящийся в ней самой.
Вопрос: как указать ей на существование данного скрипта.
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 3 написано 29.01.2013 в 21:55
gmltA
Сержант
Выполнить скрипт внутри фрейма можно через window.frames("fra1").function(), где fra1 - имя фрейма.

У вас не работает функция showContent при вызове из фрейма?
CellCore development team
Сообщение # 4 написано 29.01.2013 в 22:15
Quintessence
Центурион
Функция showContent() какраз таки работает.
Браузеры считают что функция setEmail() == null
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 5 написано 29.01.2013 в 22:42
gmltA
Сержант
<iframe name="fra1"/> - допустим, ваш фрейм

window.frames("fra1").setEmail() - вызов функции из него
CellCore development team
Сообщение # 6 написано 29.01.2013 в 22:45
  • Страница 1 из 1
  • 1
Поиск: