Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2011, 18:00
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Функция для вычисления стилей.
function returnStyle(element, typestyle) {
var style = '';
	if (element.currentStyle) 
		style = element.currentStyle.typestyle;
	else  if (window.getComputedStyle) 
		style = window.getComputedStyle(element, null).typestyle;

return style;
}


Вот написал такую функцию. Ей первым аргументом даётся сам элемент, 2 аргументом даётся тип стиля, который нужно найти. Но она не работает, подозреваю что проблема в строчках
element.currentStyle.typestyle, типо он может динамически подставить в этой ситуации.

А вот так этот код работает. Направьте на путь истинный, пожалуйста.

var styler = '';
	if (textarea.currentStyle) 
		styler = textarea.currentStyle.height;
	else  if (window.getComputedStyle) 
		styler = window.getComputedStyle(textarea, null).height;ё


Да и ещё вот такой вопрос. А как вообще стили вычисляются текущие. Просто если брать как getComputedStyle, то он берёт из из файла css, но если после подключения будет стоять такой же стиль на этот элемент, только в тегах <style></style> то он перебивает из файла style.css. Также стили могут стоять в самом теге html. Так вот, можно ли как то скриптом вычислить текущий стиль, т.к. самый приоритетный?
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2011, 04:09
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

style = element.currentStyle[typestyle];
style = window.getComputedStyle(element, null)[typestyle];
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2011, 11:05
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от prowoke
если брать как getComputedStyle, то он берёт из из файла css
Нет. Это тупая, ни на чем не основанная фантазия, возведенная в ранг утверждения. Но если подумать, разве функция называется getStyleFromCSSFile??? На самом деле, это функция возвращает расчитанные стили, т.е. то, что браузер посчитал для этого элемента. И css может и не быть. Тогда вычисляются стили по умолчанию (кстати, и функцию можно попроще сделать):
<body>
<span id="test"></span>
<script>
function returnStyle(element, typestyle){
  return "getComputedStyle" in window ?
           getComputedStyle(element, null)[ typestyle ] :
             element.currentStyle[ typestyle ];
};

alert( returnStyle( document.getElementById("test"), "display" ) );
</script>
</body>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Своя Функция для модуля Доставки (pickpoint.ru) jekjuk Общие вопросы Javascript 0 19.05.2011 16:32
Функция для jQuery qwermjk Общие вопросы Javascript 4 25.01.2011 09:56
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 11:15
Универсальная функция для формы Nightmare Общие вопросы Javascript 5 16.04.2010 18:42
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48