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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не выполняется скрипт, getId('test').innerHTML = response; 
V
    Опции темы
bazzjr
Дата 20.6.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем привет.

Есть следующий код:
Код

function testt(url){
    createRequest();     
    request.onreadystatechange = updatePage99;
    request.open("GET",url,true);
    request.send(null);
}
function updatePage99() {
     if (request.readyState == 4) {
       if (request.status == 200) {
          response = request.responseText;
          getId('testt').innerHTML =  response;
       } else
         alert("status is " + request.status);
     }
   }


В переменной url к примеру вызывается страница содержащая:
Код

<? echo "TEST 1<br />";?>
<span>TEST 2<br /></span>

<script type="text/javascript">
function afg(){    alert("afg");}
</script>

<input class="button" type="button" value=" test " onClick="afg();" />


При нажатии кнопки функция afg не вызывается, пишет ошибку типа такой функции нет, хотя она определенно есть в коде.

Вопрос:
Как сделать так, чтобы после того как призошло innerHTML, после в той странице которую мы "присоединяли"работали javascript коды?
В данном случае функция afg().


Это сообщение отредактировал(а) bazzjr - 20.6.2009, 18:08
PM MAIL ICQ   Вверх
bazzjr
Дата 22.6.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Неужели Гуру Javascript'а, незнают о существовании решения для данной проблеммы.  smile 
PM MAIL ICQ   Вверх
bars80080
Дата 22.6.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(bazzjr @  20.6.2009,  18:06 Найти цитируемый пост)
request.onreadystatechange = updatePage99;

к функции всегда надо скобочки указывать:

Код

request.onreadystatechange = updatePage99();

PM MAIL WWW   Вверх
bazzjr
Дата 22.6.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не помогло, даже более того, если поставить скобки, то скрипт не выполняется совсем...
PM MAIL ICQ   Вверх
unicross
Дата 22.6.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



bazzjr, предлагаю обходной маневр...

Код

var afg;
function updatePage99() {
   if (request.readyState == 4) {
      if (request.status == 200) { // Запрос успешно обработан
         var xml = request.responseXML;
         var cod = xml.getElementsByTagName("cod")[0].firstChild.data;
         var text = xml.getElementsByTagName("text")[0].firstChild.data;
         eval(cod);
         document.getElementById("testt").innerHTML = text;
      }
      else {
         document.getElementById("testt").innerHTML = "Ошибка";
      }
   }
}


Код

<?php
header('Content-Type: text/xml; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8" ?>' . "\n";
$txt = 'TEST 1<br />
<span>TEST 2<br /></span>
<input type="button" value=" test " onclick="afg();">';
$txt = htmlspecialchars($txt, ENT_COMPAT, 'UTF-8');
$cod = 'afg = function() {
   alert("afg");
}';
$cod = htmlspecialchars($cod, ENT_COMPAT, 'UTF-8');
?>
<ajax>
<cod>
<?php echo $cod; ?>
</cod>
<text>
<?php echo $txt; ?>
</text>
</ajax>


Цитата(bars80080)
к функции всегда надо скобочки указывать:

В данном случае это нельзя делать, так как это функция обратного вызова. Необходимо указывать ссылку на функцию, а не вызывать ее явно.

PM MAIL WWW   Вверх
Soah
Дата 22.6.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

// ...
response = request.responseText;
getId('testt').innerHTML =  response;
var script = getId('testt').getElementsByTagName('script')[0];
script.text = script.text; // для IE
window.eval(script.text);
// ...


Это сообщение отредактировал(а) Soah - 22.6.2009, 14:29
PM MAIL   Вверх
bazzjr
Дата 22.6.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Soah работает!  smile 

ты бы не мог поподробней рассказать что это? или дать ссылку где это зелье можно покурить  smile

Добавлено через 3 минуты и 47 секунд
От меня + репутация полюбому.
PM MAIL ICQ   Вверх
Soah
Дата 22.6.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bazzjr @  22.6.2009,  14:59 Найти цитируемый пост)
или дать ссылку где это зелье можно покурить

а что Google сегодня отдыхает smile 

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


 




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


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

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