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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выполнить в подгружаемом файле js код? Как выполнить в подгружаемом файле js ко 
:(
    Опции темы
DeMONiZ
Дата 15.4.2010, 05:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здавствуйте! Проблема такова, или даже не проблема а вопрос.
есть код

Код

<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;
    //alert(text);
}

setInterval("getAXAH('файл.php');", 1000);
</script>


и подгружаемая страница с js ( наш файл.php)

Код

<?
получаем данные.....
...........................
if ($r==$ru)
{
echo '
<script>
alert ("Сообщение......");
</script>
';
}
?>


Нужно каким нибудь методом образом сделать чтоб этот алерт выполнялся и выводилось сообщение......
Какие будут соображения?
PM MAIL WWW   Вверх
EmilRegis
Дата 15.4.2010, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а чем alert(text); не устраивает?
PM MAIL   Вверх
DeMONiZ
Дата 15.4.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(EmilRegis @ 15.4.2010,  05:42)
а чем alert(text); не устраивает?

Что вы имеее ввиду, возможно вы не поняли вопрос.

Опишу все подробнее.
Есть php страница она подргружается аяксом (скрипт выше) через setInterval c частотой в 1 секунду.
Это нужно для того чтобы видеть изменения информации без перезагрузки страницы.
Когда соответствующая информация на странице удовлетворит условие мне нужно выести текст алертом так сказать оповестить пользователя о том что условие удовлетворяется.

JS код на подгружаемой стрнице не выполняется и нужно сделать чтоб он выполнялся.


Это сообщение отредактировал(а) DeMONiZ - 15.4.2010, 10:19
PM MAIL WWW   Вверх
EmilRegis
Дата 15.4.2010, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну вообще говоря думаю php не подгружается, а выполняется на сервере...а то, что php выплёвывает в виде echo - возвращается в callback - функцию...поэтому думаю правильно будет в php написать условие и выплёвываемый результат 
Код

<?
получаем данные.....
...........................
if ($r==$ru)
{
echo 'Сообщение......';
}
?>

а в callback выводить уже алерт
Код

function insertText(text) {
    alert(text); -- тут text - ваше пэхэпэшное сообщение
}


Это сообщение отредактировал(а) EmilRegis - 15.4.2010, 11:53
PM MAIL   Вверх
skyboy
Дата 15.4.2010, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



у jQuery есть метод getScript, можешь использовать или посмотреть, как там реализовано.
но, если ты планируешь, что этот подгружаемый скрипт будет перестраивать что-то на твоей странице, которая этот скрипт подгружает, я бы все же рекомендовал передавать только данные(XML, json, простой текст), так, чтоб решение о замене/удалении блоков принимал один и тот же код на основании пришедших данных. а не загружаемое творило, что "придет в голову". проще контролировать все же.
PM MAIL   Вверх
DeMONiZ
Дата 15.4.2010, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Данное ршение не подойдет,  у меня данных много вывдится.
Привожу пример:


выводится из базы циклом информация в таблице например 15 разных имен 

Код


<tr>
<td>Имя</td><td>Время</td>
</tr>

<tr>
<td>Имя_2</td><td>Время</td>
<tr>




Первая ячейка содежит имя вторая время.

в цикле есть условие если время текущее совпадает с временем выводимым из базы  то и должен выходить alert



Это сообщение отредактировал(а) DeMONiZ - 15.4.2010, 12:15
PM MAIL WWW   Вверх
DeMONiZ
Дата 15.4.2010, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Правильно сформулировать надо так "Подгрузка через AJAX HTML-кода, содержащего JavaScript"
PM MAIL WWW   Вверх
EmilRegis
Дата 15.4.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может всё таки кесарю кесарево, а джаваскрипту джаваскриптовое?
Цитата
так, чтоб решение о замене/удалении блоков принимал один и тот же код на основании пришедших данных. а не загружаемое творило, что "придет в голову". проще контролировать все же.

то есть получаете дажнные с сервера и уже в скрипте их обрабатываете как надо...в чём проблема то? или если у вас что-то специфичное, то приведите  более подробный пример

Добавлено через 6 минут и 53 секунды
если всё правильно понял, то надо просто в коллбек-функции пройтись по таблице и сравнивать текущее время с тем, что в ячейке таблицы, а если произошло совпадение - то выводить алерт, пришедший от сервера
PM MAIL   Вверх
DeMONiZ
Дата 15.4.2010, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что то вроде этого я имел ввиду:

http://www.realcoding.net/articles/podgruz...javascript.html
PM MAIL WWW   Вверх
DeMONiZ
Дата 15.4.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Осталось только грамотно внедрить их код в мой.....
PM MAIL WWW   Вверх
cha0t1k
Дата 15.4.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Что Вас ограничивает использовать методы jquery get() post() ? Они корректно подгружают в пространство имен весь джаваскрипт в тегах <script> в получаемом через AJAX HTML.  Но с некоторыми проблемами столкнетесь. Из этого джаваскрипта будет недоступен весь джаваскрипт более верхнего уровня. 
Но вообще это плохая практика. Лучше получать чистый JS, либо чистый HTML. А для серьезных клиентских приложений практика получения AJAX'ом HTML'а не подходит. Лучше JSON. 

Это сообщение отредактировал(а) cha0t1k - 15.4.2010, 13:34
PM MAIL   Вверх
DeMONiZ
Дата 15.4.2010, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



cha0t1k а пример можно чтоб работал с моим выше представленом коде? чтоб брал регуляркой вырезал весь код между <script> </script> обрабатывал его и засовывал в head. сейчс мне не важно как мне важно чтоб работало потому что времени осталось часа 2 на ешение этой проблемы у самого не выходит...
PM MAIL WWW   Вверх
cha0t1k
Дата 15.4.2010, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я так подгружал HTML используя jquery. И больше стараюсь так не делать. Когда проект разрастается, сложно поддерживать. Сейчас пишу с разделением логики и представления клиентскую часть. 
Если надо решить быстро, просто заюзай jquery. За два часа ты успеешь разобраться как работать в нем с AJAX.
http://jquery.com
PM MAIL   Вверх
IDVsbruck
Дата 15.4.2010, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 22



Не стал подробно читать все посты, но так понял, что проблема не решена и она заключается в том, что скрипт, подгруженный динамически, автоматом не подгружается.
Уже давно пользуюсь jQuery, там это уже решено и отлично работает, но покопался в архивах и нашел старую реализацию:
Код
function run_script(_div) {
    var divContent = _div.childNodes;
    for (var i = 0; i < divContent.length; i++) {
        requestItem = divContent.item(i);
        if (requestItem.tagName)
            if (requestItem.tagName.toUpperCase() == 'SCRIPT') eval(requestItem.text);
        else run_script(requestItem);
    }
}

Это callback запроса. Если в ответе сервера встречается script, то он должен выполниться.
PM MAIL   Вверх
DeMONiZ
Дата 15.4.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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