Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: ошибка с innerHTML и prototype Updater

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть див, например

Код:
 
<div id=ShowLogs></div>
 

в него нужно внести данные следующего вида

Код:
 
<SCRIPT>adh(4,1,"05:38",12)</SCRIPT><span class="b2">undead1</span> почесал за ухом и увидев это  <span class="b1">undead2</span> засучив рукава и
 

 
каким образом это можно сделать?  
innerHTML засовывает данные под див, а не в див. а вот Ajax.Updater вообще от такого кода заменяет все содержимое страницы на запущенный в него кусок кода, ну тоесть на то что я привел выше
 


----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 01:45 29-11-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delta RuBoard

Цитата:
innerHTML засовывает данные под див, а не в див

вот только сказок нам не надо..
код, плиз. не будем гадать на кофейной гуще.
вот только
Цитата:
<SCRIPT>adh(4,1,"05:38",12)</SCRIPT>

не к месту. ну не факт что он выполнится вот так.. совсем не факт.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:56 29-11-2009
Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
вот код
 

Код:
<div id=ShowLogs style='height: 90px; overflow: auto; width: 100%; border: 1px solid #a0a0a0;'></div>";
echo '<script>
var IHeight = document.body.clientHeight - 322;
document.getElementById("ShowLogs").style.height = IHeight;
</script>
';

 
пример $logs
 

Код:
<SCRIPT>adh(4,1,"05:38",12)</SCRIPT><span class="b2">undead1</span> почесал за ухом и увидев это  <span class="b1">undead2</span> засучив рукава и дико вертя глазами ударил  ногой в то место, в которое обычно не бьют. <Font Color=#006699><b>-6</b></Font> [9994088/10000000]<BR>
 
<SCRIPT>adh(1,45,"05:38",21)</SCRIPT><span class="b1">undead2</span> думал о горячем ужине, но прервав его мечтания  <span class="b2">undead1</span> подпрыгнув на левой ноге вмазал  головой в плоский лоб. <Font Color=#006699><b>-6</b></Font> [9999848/10000000]<BR>

разрывов строки нет, сделал просто для разборчивости
 

Код:
echo 'document.getElementById("ShowLogs").innerHTML = \' '.$logs.' \'; ';

 
Добавлено:
ошибка возникает изза того, что в $logs есть <SCRIPT>, без него оно заносит именно в див, и все работает корректно..
 
   
 
Добавлено:

Код:
function insertScript(script){
    var targetNode = document.createElement('div');
    document.body.appendChild(targetNode);
    try {
        var el = document.createElement('script');
        el.type="text/javascript";
        el.innerHTML = script;
        targetNode.appendChild(el);
    } catch (e) {
        var el = document.createElement('span');
        targetNode.appendChild(el);
        el.innerHTML = "<br /><scr"+"ipt type='text/javascript' defer='defer'>"+script+"</script" + ">";
    }
}

 
нашол такой кусок кода, только не пойму как его юзать что бы работало то что нужно >.<

----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 01:59 29-11-2009 | Исправлено: Delta RuBoard, 02:03 29-11-2009
Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
даже если быть точнее то ошибка возникает из-за того, что в adh() идет document.write. есть какой-то  вариант заменить док.врайт на что-либо другое?

----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 18:39 29-11-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delta RuBoard

Цитата:
даже если быть точнее то ошибка возникает из-за того, что в adh() идет document.write. есть какой-то  вариант заменить док.врайт на что-либо другое?

document.write работает на этапе формирования страницы.  
все остальное он будет вам дописывать в конец, после тега </html>
или вообще с новой страницы. создаете span, и цепляете его там, где вам хочется

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:39 29-11-2009
Delta RuBoard



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ну в принципе как вариант решения заменять <SCRIPT>adh(4,1,"05:38",12)</SCRIPT> на <SPAN id=randID><SCRIPT>adh(4,1,"05:38",12)</SCRIPT></SPAN> и попробывать сделать вместо док.врайт гетелемент.иннерХТМЛ хотя хз прокатит ли %)
 
Добавлено:
да, такой вариант подходит. осталось только придумать как давать ID спанам если в $logs больше 2х рядков >.<
 
 
 
Добавлено:

Код:
    $find = '<SCRIPT>adh(';
    $q = 0;
    $count = substr_count($battles_log['comment'], "<SCRIPT>adh(");
    while ($count > 0)
    {
        $q++;
        $count--;
        $battles_log['comment'] = preg_replace("/<SCRIPT>adh\(/", '<span id="'.$i.$q.'"><script>adh("'.$i.$q.'",', $battles_log['comment'], 1);
    }
    $battles_log['comment'] = str_replace('</SCRIPT>', '</script></span>', $battles_log['comment']);

 
вот решение, мб кому пригодится

----------
мой маленький блог
Создание on-line игр

Всего записей: 382 | Зарегистр. 21-06-2005 | Отправлено: 07:32 30-11-2009 | Исправлено: Delta RuBoard, 08:25 30-11-2009
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: ошибка с innerHTML и prototype Updater


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru