Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 23.07.2012, 17:17   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Смущение ВК+смайлы. Помогите со скриптом

whatrep=['=) :-)',';) ;-)'];
torep=['SMILE','EYE'];

mask='<img src=#SMILEURL# alt="!!SMILE not find!!"></img>';
scan_class=['fc_msg','dialogs_msg_text','pad_msg_text'];
//переписанный код замены
function exreplace(text,from,to)
{
var 
tmp=text;
var 
strarr=from.split(" ");

for(var 
i=0;i<strarr.length;i++)
    
tmp=tmp.split(strarr[i]).join(to);
return 
tmp;
}
//сама замена
function repsmile(text)
{
var 
tmp=text;
    for(var 
i=0;i<whatrep.length;i++)
    {
    var 
mathto=mask.replace('#SMILEURL#',torep[i]);
    
tmp=exreplace(tmp,whatrep[i],mathto);
    }
return 
tmp;
}
//Место где искать
function finddiv()
{
alert("script start");
var 
obj=document.getElementsByTagName('div');
for(var 
i=0;i<obj.length;i++)
    {
    for(var 
n=0;n<scan_class.length;n++)
        {
        if(
obj[i].className.substr(0,scan_class[n].length)==scan_class[n]) 
            {
            
alert(obj[i].innerHTML);
            
obj[i].innerHTML=repsmile(obj[i].innerHTML);
            
            }
        
        }
    }
}
finddiv(); 
Написал код, собрал плагин для Мазилы, он просто подгружает на страницу левый скрипт.
Скрипт запускается (алерт вылетает), но второй, который в цикле,НЕТ.
На симуляторе ВК (тупо страница с DIV нужных классов) работает, то есть меняет "=) " на картинку.
В чем проблема может быть (на говногод не глядеть)?
И как можно сделать запуск finddiv() после изменения страницы?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 17:49   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ВК+смайлы. Помогите со скриптом

Для дебага, используй console.log() и консоль в броузере (не IE).
Далее выведи сперва данные по прохождению цикла, например количество найденных объектов по тэгу, далее выведи сам класс, и результат проверки класса потом.
Также если хочешь проверить есть ли класс, лучше используй не substr, а indexOf для проверки наличия класса. Типо так:
obj[i].className.indexOf(scan_class[n]) != -
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 18:04   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: ВК+смайлы. Помогите со скриптом

Сообщение от MoKa Посмотреть сообщение
Для дебага, используй console.log() и консоль в броузере (не IE).
Далее выведи сперва данные по прохождению цикла, например количество найденных объектов по тэгу, далее выведи сам класс, и результат проверки класса потом.
Также если хочешь проверить есть ли класс, лучше используй не substr, а indexOf для проверки наличия класса. Типо так:
obj[i].className.indexOf(scan_class[n]) != -
Вопрос, а если атрибут class="lolo lolol olol"-'это один класс или объект к нескольким относиться?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 18:23   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ВК+смайлы. Помогите со скриптом

Это несколько классов относятся к этому элементу.
Например у я использую такие классы у двух элементов: 'arrow left'; 'arrow right'.
Таким образом можно писать стили для стрелочек, и отдельные дополнения для левой и правой.
Всегда рассчитывай на то что классов может быть больше чем один.

Также используй Inspector в Chrome или FireBug в Firefox чтобы просматривать удобно разметку и классы прямо на странице.
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 18:27   #5
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: ВК+смайлы. Помогите со скриптом

проверил, console.log(obj.length) вообще вернуло null, как так, хотя бы 0 должен.
скачал сдк для дополнений фаефокс,но при установке не в дебаг режиме не ставит, а пишет что не совместима, че делать
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 23.07.2012, 19:39   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ВК+смайлы. Помогите со скриптом

На счёт Firefox, хз что ты там качаешь, вот ссылка: http://getfirebug.com/

На счёт длины списка объектов. Да null не должен быть, следственно что-то не так. Ты уверен что null эта строка выдала, также нет каких либо ошибок ещё?

Если сделаешь пример на jsfiddle.net, то смогу помочь с JS.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com