Jump to content

JohnDoe

Newbie
  • Posts

    6
  • Joined

  • Last visited

Everything posted by JohnDoe

  1. По-моему большинство функций, которые раньше использовались в виде костылей, сейчас перенесены на нативный код... Зачем нам еще один костыль для того чтобы использовать костыли? Да, и таки да кэширование таки работает...
  2. Эм... А preventDefault не аргумент? Возможно я не понимаю сути вопроса...
  3. Во первых... 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. Опять же говорю его переделать не проблема... Но и рассчитывать на то, что готовые решения будут даваться бесплатно - тоже не вариант.
  4. Я не об этом... Правильно ли поставлен вопрос. Если брать в общем, то, для работы с CSS через JavaScript нет нужды парсить сам CSS. Большинство браузеров, и не которые IE, уже проделали всю нужную работу. Для работы со стилями необязательно распарсивать все стили. Это просто пример, в котором я собираю все стили в массив. В функции нет выборки, для этого достаточно добавить какой-нибудь банальный, к примеру: ...search(/\bbackground:/), чтобы отсеять лишнее, и потом, опять же, к примеру, вытянуть значение свойства и селектор каким нибудь: var sometext = ...cssText.split('{'),selects = sometext.shift().split(','),value = sometext[0].match(/\bbackground: \w*;\b/);Способов много и основная задача решена. Но после проверки содержания, кому как удобнее... можете хоть на стороне сервера распарсивать и обрабатывать
  5. Возможно вам поможет, нечто, вроде вот этого: (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( ну там: менять параметры, и, все такое...). Подумайте...
  6. По сути, функция - это метод объекта Function, который(объект), по сути, является методом объекта Object, который имеет свои методы, которые наследует Function, в доме который построил Джек. На этом не стоит заморачиваться, поскольку язык довольно сложный, и не до конца понятен даже, наверное, самим разработчикам Javascript Обычно, в языках программирования, используется классический синтаксис для создания функции: function Foo(){/*Здесь идет "блок кода" заключенный в фигурные скобки, в круглых скобках передаваемые параметры. слово function говорит о том что вы декларируете блок кода, который вам нужно будет исполнить позже...*/}Это всего лишь значит, что в Javascript, как и в большинстве ООП языков, функция - это всего лишь блок исполняемого кода, присвоенный какой нибудь переменной. Поэтому когда вы попробуете вывести имя функции в консоли, либо на экран, без исполнения(без круглых скобок), она вернет вам кусок кода как текст, а не результат выполнения функции.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy