Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   cssRules.length не работает в Хроме (https://javascript.ru/forum/events/51988-cssrules-length-ne-rabotaet-v-khrome.html)

horan 28.11.2014 19:35

cssRules.length не работает в Хроме
 
Здравствуйте, форумчане! Вопрос такой, подключаю в <head> два файла со стилями:

<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/themes.css">

потом с помощью JS пытаюсь alert'oм вывести количество свойств у первого стиля:

alert(document.styleSheets[0].cssRules.length)

Проблема вот в чем: в Хроме и Опере alert не выводит, а в Лисе и даже в IE выводит!!!.

PS. Если вставить содержимое первого стиля в сам документ, то во всех браузерах alert выводит. Но мне нужно только чтоб подключались внешние файлы с таблицами стилей.

Octane 28.11.2014 19:53

Загружай по HTTP и все будет работать. С file:/// всегда проблемы.

horan 28.11.2014 20:06

Действительно!Выложил на свой сайт!Заработало!)))Почему интересно локально не работает(((

bes 28.11.2014 20:34

Цитата:

Сообщение от horan
Действительно!Выложил на свой сайт!Заработало!)))Почему интересно локально не работает(((

потому что браузеры предполагают работу в сети, поставь локальный сервер и не придётся выкладывать на сервер хостера

horan 29.11.2014 10:06

Спасибо!

kostyanet 29.11.2014 13:44

html с сетью никак не связан, браузеру пофигу откуда этот текст получать.

kostyanet 29.11.2014 13:50

bug https://code.google.com/p/chromium/i...etail?id=49001

bes 29.11.2014 13:56

Цитата:

Сообщение от kostyanet
html с сетью никак не связан, браузеру пофигу откуда этот текст получать.

Цитата:

Сообщение от kostyanet

это не так, есть протокол передачи данных - есть реакция браузера, делать что-то для протокола file вообще смысла нет, поэтому к багам в этом отношении, предполагаю, отношение скептическое, но есть смысл реализовать собственный локальный сервер (устанавливаемый при установке браузера) с поддержкой используемых на боевом фронте протоколов

kostyanet 29.11.2014 14:13

Не слушайте дятла, file не протокол, а схема, то есть по-нашему (схема в терминах http) - функция. Разница в том что по схеме http браузер получает сведения о приходящих данных в заголовках, а по схеме file - по метатегам в файле. То есть когда поток - заголовки, а когда файл - теги. Причем браузер может сам запихать туда какие надо меты, чтобы потом нормально открыть.

Проблема тут такая же, как с канвасом, в который локально ничего не запихаешь. Браузер не знает о домене, поэтому теряется в догадках и исходя из принципа лучше перебздеть - отключает некоторые фичи связанные с этой кроссдоменностью. Грамотный браузер должен понимать функцию file://, а неграмотный - тупит. Вот и все.

kostyanet 29.11.2014 14:17

Короче говоря браузер "думает" что вы открыли файл стилей с чужого сайта и хотите там что-то поменять, типа написать в ::after content:"bes - дятел", чтоб оно на том самом сайте и отобразилось.

bes 29.11.2014 14:23

Цитата:

Сообщение от kostyanet
Не слушайте дятла, file не протокол, а схема, то есть по-нашему (схема в терминах http) - функция. Разница в том что по схеме http браузер получает сведения о приходящих данных в заголовках, а по схеме file - по метатегам в файле. То есть когда поток - заголовки, а когда файл - теги. Причем браузер может сам запихать туда какие надо меты, чтобы потом нормально открыть.

Проблема тут такая же, как с канвасом, в который локально ничего не запихаешь. Браузер не знает о домене, поэтому теряется в догадках и исходя из принципа лучше перебздеть - отключает некоторые фичи связанные с этой кроссдоменностью. Грамотный браузер должен понимать функцию file://, а неграмотный - тупит. Вот и все.

Цитата:

Сообщение от kostyanet
Короче говоря браузер "думает" что вы открыли файл стилей с чужого сайта и хотите там что-то поменять, типа написать в ::after content:"bes - дятел"

протокол - не более чем набор правил, твоя "схема file" также определяет набор правил, то, что эти наборы разные - очевидно даже для тебя, поэтому иди в ж-пу (Gozar не даст соврать, я пожелал тебе добра :D )

kostyanet 29.11.2014 14:45

Pft,fk!

URI schemes are frequently and incorrectly referred to as "protocols", or specifically as URI protocols or URL protocols, since most were originally designed to be used with a particular protocol, and often have the same name. - http://en.wikipedia.org/wiki/URI_scheme

bes 29.11.2014 15:01

Цитата:

Сообщение от kostyanet (Сообщение 343431)
Pft,fk!

URI schemes are frequently and incorrectly referred to as "protocols", or specifically as URI protocols or URL protocols, since most were originally designed to be used with a particular protocol, and often have the same name. - http://en.wikipedia.org/wiki/URI_scheme

есть ещё общее понятие протокола, my dear friend ;)
но рад, что ты всё-таки углубляешься в смысл понятий :yes:


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