Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение HEAD перед загрузкой BODY
 
 автор: Temchik   (15.11.2009 в 16:22)   письмо автору
 
 

У меня есть js файл который я подключаю к опере.
Eсть страница с некоторым <head>.....</head>

Мне нужно чтобы скрипт стер все ссылки на css и написал свою, после уже загружался body с тем css который написал js файл...

Тоесть убирать на сайте все его css и применять мой css

Я пробывал так, но ничегон е получилось

document.head.onload = function () {vcsss()} 
function vcsss() {
document.head="<link rel='stylesheet' href='http://........./vk1.css' type='text/css' />"
}

  Ответить  
 
 автор: АЯ   (16.11.2009 в 11:42)   письмо автору
 
   для: Temchik   (15.11.2009 в 16:22)
 

Задачка эта не такая простая, как вам кажется.

CSS в заголовке страницы могут быть двух типов:
1. External Style Sheets - подключаемые внешние файлы *.css посредством использования тега <link rel="StyleSheet" type="text/css">. Их может быть несколько в заголовке страницы.
2. Embedded Style Sheets - встроенные таблицы стилей, заключённые в блоки <style>...</style>. Таких блоков может быть несколько в заголовке страницы.

И те, и другие составляют коллекцию document.styleSheets, длина которой равна суммарному количеству тегов <link rel="StyleSheet" type="text/css"> и блоков <style>...</style>.

Если ваш скриптовой блок <script></script> расположен в заголовке в HTML-коде НИЖЕ, чем все вышеперечисленные теги <link rel="StyleSheet" type="text/css"> и блоки <style>...</style>, то тогда коллекция document.styleSheets к моменту обращения к ней будет у вас ПОЛНОЙ.

Удалить СРАЗУ всю коллекцию document.styleSheets НЕЛЬЗЯ.
Удалить отдельный элемент коллекции document.styleSheets тоже НЕЛЬЗЯ.

Однако МОЖНО удалить по очереди ВСЕ ПРАВИЛА в каждом из элементов коллекции document.styleSheets.
Для этого нужно использовать два вложенных цикла: внешний цикл перебирает поэлементно коллекцию document.styleSheets, а внутренний цикл по очереди удаляет все правила в каждом элементе (методом removeRule () в MSIE).
Таким образом вы СОТРЁТЕ все прописанные правила CSS ещё до того, как они будут применены к тегам страницы (учтите, что среди правил могут быть правила @import, а их надо удалять немного иначе).

После удаления всех правил можно добавить свой CSS-файл.
В браузере MSIE для этого можно использовать метод document.createStyleSheet ().


Для браузеров Mozilla всё вышесказанное тоже имеет место быть, но для удаления правил CSS и для добавления файла CSS используются другие (по названиям) методы.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования