JohnDoe
-
Posts
6 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Posts posted by JohnDoe
-
-
По-моему большинство функций, которые раньше использовались в виде костылей, сейчас перенесены на нативный код... Зачем нам еще один костыль для того чтобы использовать костыли? Да, и таки да кэширование таки работает...
-
Эм... А preventDefault не аргумент?
Возможно я не понимаю сути вопроса...
- 1
-
Во первых...
value = sometext[0].match(/\bbackground: \w*;\b/);
Рабочая. Просто браузеры в большинстве своем не просто распарсивают а раскладывают по полочкам... Свойство background содержит в себе 3, или более, свойств(background-color, background-position, background-repeat - это только для цвета). Следовательно и задавать вопросы нужно правильно...
к примеру:
sometext[0].match(/\bbackground-?\w*:\s*[^;]*;/gim)
Насколько я понимаю, основная цель форума научить или научиться... Если все будет преподноситься на тарелочке, научиться чему либо невозможно. Основная задача в программировании - думать. Думать за компьютер(он ведь не понимает человека, и то что он хочет), и думать за пользователя который пользуется твоим продуктом.
Поскольку меня понять сложно, я думаю стоит выложить более или менее адекватный(рабочий) пример скрипта:
(function(){ var styleData = document.styleSheets, styleGreed, greedList, styles = [],i,j, sometext,selects,value; for(i=0;i<styleData.length;i++){ styleGreed = styleData[i]; greedList = styleGreed.rules || styleGreed.cssRules; for(j=0;j<greedList.length;j++){ //styles.push(greedList[j].cssText); if(greedList[j].cssText.search(/\bbackground/)>-1){ sometext = greedList[j].cssText.split('{'); selects = sometext.shift().split(','); value = sometext[0].match(/\bbackground-?\w*:\s*[^;]*;/gim); _(sometext[0].match(/\bbackground-?\w*:\s*[^;]*;/gim)); styles.push({s:selects,v:value}) } } } console.log('Done'); this.cssStyles = styles;}).call(this);
В результате вы получите тот набор, на который, рассчитывал bio.
Опять же говорю его переделать не проблема... Но и рассчитывать на то, что готовые решения будут даваться бесплатно - тоже не вариант.
-
Я не об этом...
Правильно ли поставлен вопрос.
Если брать в общем, то, для работы с CSS через JavaScript нет нужды парсить сам CSS. Большинство браузеров,
и не которые IE, уже проделали всю нужную работу. Для работы со стилями необязательно распарсивать все стили. Это просто пример, в котором я собираю все стили в массив. В функции нет выборки, для этого достаточно добавить какой-нибудь банальный, к примеру:...search(/\bbackground:/)
, чтобы отсеять лишнее, и потом, опять же, к примеру, вытянуть значение свойства и селектор каким нибудь:
var sometext = ...cssText.split('{'),selects = sometext.shift().split(','),value = sometext[0].match(/\bbackground: \w*;\b/);
Способов много и основная задача решена. Но после проверки содержания, кому как удобнее... можете хоть на стороне сервера распарсивать и обрабатывать
-
Возможно вам поможет, нечто, вроде вот этого:
(function(){ var styleData = document.styleSheets, styleGreed, greedList, styles = [],i,j; for(i=0;i<styleData.length;i++){ styleGreed = styleData[i]; greedList = styleGreed.rules || styleGreed.cssRules; for(j=0;j<greedList.length;j++){ styles.push(greedList[j].cssText); } } this.cssStyles = styles;}).call(this);
Далее вам придется перебрать массив в поимках нужной вам комбинации слов...
Мне лично не попадались парсеры для CSS. Хотя я, лично не вижу смысла парсить css,
видимоиз-за этого они и не попадались. Я думаю вам наверное нужен не парсер, а скажем какое нибудь API, поскольку в результате вам наверное придется работать с тем самым CSS( ну там: менять параметры, и, все такое...). Подумайте...- 1
-
По сути, функция - это метод объекта Function, который(объект), по сути, является методом объекта Object, который имеет свои методы, которые наследует Function, в доме который построил Джек.
На этом не стоит заморачиваться, поскольку язык довольно сложный, и не до конца понятен даже,
наверное, самим разработчикам JavascriptОбычно, в языках программирования, используется классический синтаксис для создания функции:
function Foo(){/*Здесь идет "блок кода" заключенный в фигурные скобки, в круглых скобках передаваемые параметры. слово function говорит о том что вы декларируете блок кода, который вам нужно будет исполнить позже...*/}
Это всего лишь значит, что в Javascript, как и в большинстве ООП языков, функция - это всего лишь блок исполняемого кода, присвоенный какой нибудь переменной. Поэтому когда вы попробуете вывести имя функции в консоли,
либо на экран, без исполнения(без круглых скобок), она вернет вам кусок кода как текст, а не результат выполнения функции.
Событие keydown на select'е всплывает через раз
in JavaScript
Posted
Бинго!