Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   jqweri смена стилей (https://javascript.ru/forum/xhtml-html-css/79241-jqweri-smena-stilejj.html)

misha.korolcov 13.01.2020 19:22

jqweri смена стилей
 
Добрый день ,как в jq, проверить подключен ли файл , мне надо перезаписать . Стили если например одна css подлючена одни стили если другая то второй раз

либо
if(localStorage.getItem('<link rel="stylesheet" href="/css/light.css">')){
            $('.loader__wrap').css('background-color', 'red');          
                      }

Malleys 14.01.2020 00:01

Цитата:

Сообщение от misha.korolcov
localStorage.getItem('<link rel="stylesheet" href="/css/light.css">')

Удивительно! Но подключённые стили находятся в document.styleSheets

Цитата:

Сообщение от misha.korolcov
как в jq, проверить подключен ли файл

Никак! Пустой или не существующий файл тоже считается подключенным стилем, поскольку фактически элемент вставлен в DOM.

function isStyleSheetLinked(src) {
	return Array.from(document.styleSheets)
		.some(({ href, rules, disabled }) =>
			href == new URL(src, location) && rules.length > 0 && !disabled
		);
}

if(isStyleSheetLinked("/css/light.css")) {
	// сделай что-то, если light.css подключен
}

if(isStyleSheetLinked("/css/dark.css")) {
	// сделай что-то, если dark.css подключен
}

рони 14.01.2020 00:47

Цитата:

Сообщение от Malleys
rules.length > 0 && !disabled

разве недостаточно
href == new URL(src, location) для того что бы узнать загружен такой файл или нет?

Malleys 14.01.2020 00:53

Цитата:

Сообщение от рони
разве недостаточно

Достаточно, если вы хотите просто проверить есть ли такое подключение, а не то, на самом ли деле стили загружены и могут ли быть применены на странице.

misha.korolcov 14.01.2020 02:21

спс


Часовой пояс GMT +3, время: 05:23.