Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Изменение HEAD перед загрузкой BODY (https://javascript.ru/forum/xhtml-html-css/6166-izmenenie-head-pered-zagruzkojj-body.html)

Temchik 15.11.2009 16:03

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

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

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

Temchik 15.11.2009 16:04

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

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

B~Vladi 15.11.2009 16:50

Цитата:

Сообщение от Temchik
document.head.onload

Это откуда взялось?
Идея ваша бредовая...
Можно удалить все link и пристегнуть свой, но это будет происходить в процессе загрузки body, поэтому при медленном нете у тебя будут частые перерисовки страницы и это будет напрягать...

Temchik 15.11.2009 16:53

Цитата:

Сообщение от B~Vladi (Сообщение 35353)
Это откуда взялось?
Можно удалить все link и пристегнуть свой

Можно код? Я в js не столь силен. Спасибо.

B~Vladi 15.11.2009 16:57

Код чего?! Удаления линков или добавления своего?!

Temchik 15.11.2009 16:58

Удаления линков и наверное дописывание своего (Надо как я понял через innerHTML) но как дописать в head??

B~Vladi 15.11.2009 17:11

document.documentElement.getElementsByTagName('LINK')

так можно получить все линки на css и удалить их (removeChild).
document.documentElement.getElementsByTagName('HEAD')[0]

так можно получить head.
В этот head вставляем (appendChild) свой link (document.createElement('link')).
Ещё вопросы?!

Temchik 15.11.2009 17:24

document.documentElement.getElementsByTagName('LINK').removeChild

document.documentElement.getElementsByTagName('HEAD')[0].document.createElement('link')


Если честно я суть то понял, но как это сделать я не понял... И еще 1 link создам а как в ему указать путь к новому css??

Temchik 15.11.2009 17:34

var head = document.getElementsByTagName("head")[0];

       // удаление старой иконки
       var links = head.getElementsByTagName("link");
       for (var i = 0; i < links.length; i++) {
               var lnk = links[i];
               if (lnk.rel=="stylesheet") {
                       head.removeChild(lnk);
                       return;
               }
       }

       // создание и добавление новой иконки
       var link = document.createElement("link");
       link.setAttribute("href","");
       link.setAttribute("rel","stylesheet");
       head.appendChild(link);


Я тут немного поискал, нашел пример со сменой иконки, немного переписал, поменял все ненужное на свое нужное, вот что получилось...

Temchik 15.11.2009 17:45

document.body.onload = function() {mlia()};
fumction mlia() {
var head = document.getElementsByTagName("head")[0];
 

       var links = head.getElementsByTagName("link");
       for (var i = 0; i < links.length; i++) {
               var lnk = links[i];
               if (lnk.rel=="stylesheet") {
                       head.removeChild(lnk);
                       return;
               }
       }
 

       var link = document.createElement("link");
       link.setAttribute("href","http://........./vk1.css");
       link.setAttribute("rel","stylesheet");
       head.appendChild(link);
}


Короче вот код, но не работает... =(( В чем может быть проблема??


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