0
- 09.11.2012 - 21:55
|
Допустим document.getElementById('test').style.border='-10% barbed veryred'; как видим, ни один из заданных параметров не катит, опера выдает при присвоении ошибку, но поймать это через try не удалось. Что делать? | | |
1
- 09.11.2012 - 22:50
| Цитата:
что значит "-10% barbed veryred", и что значит не катит ?? напиши "10px solid #ff0" и все покатит.. ошибка в атрибутах CSS или я не понимаю что ты хочешь присвоить элементу. отрицательную ширину, в процентах, очень красный цвет и не понятно что еще.. | | |
2
- 10.11.2012 - 00:03
|
1-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
| жаль, жаль. да не. Надо чтобы проверять с пом. JS, правильно ли пользователь написал стиль и применяется ли он. По идее же должно ловиться через try-catch, но не ловится. | | |
8
- 10.11.2012 - 01:14
| 7-Гавайские субтитры >тогда только - разбор того что написал пользователь, далее сравнение с базой, далее рецензия | | |
9
- 10.11.2012 - 01:22
|
8-brezhnev > Ок. Будем думать. За помощь спасибо. | | |
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" это та же стринг (того не женский) и оно просто не присваивается, если неверно. Ога. Кажись оно. Хотя - все равно не перехватывает. =)) Но это такое. Пусть алерт выдает, та и все. Пока что хватит и этого. Спасибо за подсказку. | | |
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. =)) | |
![]() | Интернет-форум Краснодарского края и Краснодара |