К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как отловить присвоение некорректного стиля через js?

Гость
0 - 09.11.2012 - 21:55
Допустим
document.getElementById('test').style.border='-10% barbed veryred';
как видим, ни один из заданных параметров не катит, опера выдает при присвоении ошибку, но поймать это через try не удалось.
Что делать?



Гость
1 - 09.11.2012 - 22:50
Цитата:
Сообщение от Гавайские субтитры Посмотреть сообщение
document.getElementById('test').style.border='-10% barbed veryred';
я думал таким методом уже никто не пользуется..

что значит "-10% barbed veryred", и что значит не катит ?? напиши "10px solid #ff0" и все покатит.. ошибка в атрибутах CSS или я не понимаю что ты хочешь присвоить элементу. отрицательную ширину, в процентах, очень красный цвет и не понятно что еще..
Гость
2 - 10.11.2012 - 00:03
1-Kuba >
имею в виду, если при присвоении стиля возникает ошибка, то можно ли ее отловить?

Цитата:
Сообщение от Kuba Посмотреть сообщение
я думал таким методом уже никто не пользуется..
а каким пользуются все кроме меня? =)
Гость
3 - 10.11.2012 - 00:47
можно например так
$('#test').css('border','1px solid red');
Гость
4 - 10.11.2012 - 00:52
3-brezhnev >
да можно.
но мулька в том, что надо присвоить вот такое
$('#test').css('border','-1% nothing nocolor');
и надо выловить ошибку. =)
Гость
5 - 10.11.2012 - 00:53
+4
и еще и желательно указать, какой из трех параметров был задан неверно =))
(но это имхо уже фантастика)
Гость
6 - 10.11.2012 - 01:01
4-Гавайские субтитры >если отлавливать в процессе написания кода, то поставь редактор, уже писал какой, он это на ура делает, 5-Гавайские субтитры >аналогично

если на стороне клиента (браузера), то это не реально.
Гость
7 - 10.11.2012 - 01:09
Цитата:
Сообщение от brezhnev Посмотреть сообщение
если на стороне клиента (браузера), то это не реально.
жаль, жаль.

Цитата:
Сообщение от brezhnev Посмотреть сообщение
если отлавливать в процессе написания кода, то поставь редактор
да не. Надо чтобы проверять с пом. JS, правильно ли пользователь написал стиль и применяется ли он.

По идее же должно ловиться через try-catch, но не ловится.
Гость
8 - 10.11.2012 - 01:14
7-Гавайские субтитры >тогда только - разбор того что написал пользователь, далее сравнение с базой, далее рецензия
Гость
9 - 10.11.2012 - 01:22
8-brezhnev >
Ок. Будем думать.
За помощь спасибо.
vk
10 - 10.11.2012 - 01:43
Ну пусть браузер и проверяет
А мы посмотрим :)
$(function()** // чисто для удобства, т.к. присвоил id='body0' body-тагу

var style_val = '1px solid red'
document.getElementById('body0').style.border =style_val;
var testing_val = document.getElementById('body0').style.border;
alert( (style_val == testing_val) ); // будет true

var style_val = '1px solid red911'
document.getElementById('body0').style.border =style_val;
var testing_val = document.getElementById('body0').style.border;
alert( (style_val == testing_val) ); // будет false

**)
А если нужно проверить, что именно не правильно - разбиваете '1px solid red911' на "слова" по признаку пробелов (той-же регуляркой) и тестите поэлементно.
Все операции можно проводить на тестовом DOM-элементе(ах)
Гость
11 - 10.11.2012 - 01:52
10-vk >
ага. Т.е. ".style.border" это та же стринг (того не женский) и оно просто не присваивается, если неверно.
Ога. Кажись оно.
Хотя - все равно не перехватывает. =))
Но это такое. Пусть алерт выдает, та и все. Пока что хватит и этого. Спасибо за подсказку.
vk
12 - 10.11.2012 - 02:01
alert - чисто для примера.
try-catch не будет работать, т.к. за объект style javascript не отвечает.
Максимум, что можно узнать - есть ли соответствующий css селектор для данного браузера.
Что-то типа
var rez = ('border' in document.body.style)? true : false; // будет true
var rez = ('BigBorder' in document.body.style)? true : false; // будет false
Гость
13 - 10.11.2012 - 02:03
А, точно. Это css ругнулсо, а не js. =))


К списку вопросов






Copyright ©, Все права защищены