![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Привет написал такую вот, усложнённую, бегущую строку:
Прозьба не обижаться, я и сам понимаю, что данный эфект можно сделать гораздо проще, просто сегодня читал об объектах, потому решил попробовать заюзать ООП. Проблема: Если строка чистая (без тэгов), то она замечательно выводится, но если в строке есть тэги, то они тоже выводились как текст, разумеется без символа < (открывающей скобки). Для для того, что бы тэг вставлять в HTML я я решил создать, так называемый, буфер, для сборки тега полностью. Т.е. когда получен симол <, то все последующие данные, в плоть до > и с ним включительно. сохряняются в этоту переменную. Если была найдена закрывающая скобка >, буфер скидывается в <div>, но тэги почему-то не работают они просто исчезают. ;((((( Они верно сохраняются во временной переменной buf, это можно увидеть через alert, который показывает каждый тэг, который был собран. Проблема в том, что фрагмент текста, который был выделен тэгами <b></b> не выделяется жирным шрифтом. Подскажите: Почему теги не работают если их вставлять через innerHTML? Как обойти эти грабли? ЗЫ: код я потом оптимизирую, на сколько смогу. ;)))))) Это сообщение отредактировал(а) korob2001 - 25.3.2006, 01:02 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Такова особенность innerHTML, что содержание тега трактуется весьма вольно и по-рзному в разных бр-рах. Видел, как переносы строк \n игнорировались в IE по странным законам. Видимо, незакрытый тег он просто убирает, считая неактуальным, если не хуже. Если немного переделать скрипт, выводя код из строки (сменить charAt на substring(0,obj.pos+1) ), заработает. (и += на = в строке 32)
Это сообщение отредактировал(а) 12345c - 25.3.2006, 02:37 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
12345c - большое спасибо. Заменил лишь charAt на substr, в 28 строке ( в прошлом коде 32 строка ) и всё заработало.
Вот код:
Это сообщение отредактировал(а) korob2001 - 25.3.2006, 03:10 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Извините, что не создал отдельный топик, просто смысла не вижу, тема та же, просто вопрос немного другой.
Подскажите, как избавиться от мерцания? В IE всё работает как нужно, а в Fire Fox нормально выводится только первый елемент массива, :'(((( все остальные ужасно мерцают. Вот код:
И такой вопрос: Мне нужно сделать, что бы этот массив messages инициализировался из файла на сервере. Это может быть текстовый или XML файл. Можно ли это как-то сделать средствами JavaScript? Например: как этьо делает Flash. Можно было бы конечно, генерировать этот код из серверного приложения и инициализировать массив во время его генерации, но я хочу вынести этот код в отдельный .js файл, а не вставлять его прямо в HTML. Просто подскажите, о чём нужно почитать. Это сообщение отредактировал(а) korob2001 - 25.3.2006, 12:56 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Ciber SLasH |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
У меня всё нормально, FF 1.5.0.1
Вынеси весь скрипт в файл script.js, и пропиши в странице после <HEAD>:
|
||||||
|
|||||||
| korob2001 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
У меня FF 1.7.12. Когда код был отдельно на странице, был этот глюк. Посмотри вот здесь: http://antonium.org/dsn/scroller.html Когда я вставил его в конечную страницу, то вродебы мерцания прекратились, но теперь мерцают часы. Посмотреть можно здесь: http://antonium.org/dsn/title5.html
В этот файл добавляются строки Perl программой на сервере, а считываться строки должны JavaScript программой. Именно ими и должен быть заполнен массив. Вобщем я хочу отделить информацию от кода. Это сообщение отредактировал(а) korob2001 - 26.3.2006, 00:44 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Ясно, тогда просто генерируй Перлом не просто строки, а загоняй их сразу в массив для JS и сохраняй в файле *.js. Типа: text = ["1111111", "22222222"]; дальше подключай этот файл к странице и у тебя будет глобальная переменная text. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Ciber SLasH - Предлагаешь хранить массив в отдельном js файле? Но это мне понадобится каждый раз, когда генерируется страница, гнерить и js файл ;(((( Я как-то слышал, что из js, можно открыть XML файл и считать с него информацию. Только вот не могу найти, где именно я видел эту тему.
Добавлено @ 03:18 Кстати, можно на сервере сразу сохранять текст не в текстовый файл, а в js файл, в виде массива, как ты предложил. Тогда нужно будет обновлять js файл, с массивом, только тогда, когда будет добавляться новая запись. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
||||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Ciber SLasH - БОЛЬШОЕ СПАСИБО. Сейчас почитаю об этом, если не подойдёт, то буду генерить js при добавлении новой записи.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
На здоровье
|
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Вобщем почитал немного. Честно говоря, он мне уже все мозги выпарил, этот XMLHttpRequest.
Написал такой код:
Всё вроде ничего, но почему-то глючит он в FireFox
Для того, что бы оборвать соединение, если оно не было установлено в течении 5 секунд. С другой стороны у меня в функции runString(), тоже запускается таймер и он так же срабатывает каждые 5 секунд. Я думал глюк где-то здесь, потому попробовал убарть таймер из функции processReqChange() и это помогло, но не до конца. В IE вроде бы всё работает нормально, но не всегда, в FF почему-то глючит конкретно. Подскажите, что не так? PS: В работе этот код можете посмотреть его на этой странице: http://antonium.org/dsn/title6.html После того, как в IE попадаешь на страницу через ссылку, то сразу же нарываюсь на глюк, когда сообщения начинают выводиться по 2 раза. Как только обновляю страницу, то код начинает нормально работать, но опять же, только в IE. ;((( Это сообщение отредактировал(а) korob2001 - 28.3.2006, 05:26 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |