Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка тегов в начало документа 
V
    Опции темы
Ferromarron
Дата 5.3.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.3.2007

Репутация: нет
Всего: нет



Здравствуйте. Такой вопрос: как можно средствами js в текущей странице вставить теги в самое начало документа? Если возможно, объясните на примере. Спасибо
PM   Вверх
12345c
Дата 5.3.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Код

document.body.innerHTML=теги+document.body.innerHTML;
(Или document.documentElement.innerHTML для IE с доктайпом.)
PM WWW   Вверх
Sardar
Дата 5.3.2007, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Лучше:

Код
var div = document.createElement('div');
div.innerHTML = ...; //если вёрстка из текста
document.body.insertBefore(div, document.body.firstChild);


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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ferromarron
Дата 5.3.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.3.2007

Репутация: нет
Всего: нет



Спасибо, с тегами ясно.

А возможно сделать функцию, которая вставляла доктайп в документ? Пробовал теми же способами, но на страницу созданный тип документа никакого влияния не оказывает.
PM   Вверх
Sardar
Дата 5.3.2007, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Ferromarron @  5.3.2007,  13:50 Найти цитируемый пост)
А возможно сделать функцию, которая вставляла доктайп в документ? 

А смысл? Доктайп это декларация, она говорит браузеру на сколько ужасной будет дальше вёрстка если доктайпа нет (quirksmode) smile
Конечно доктайп содержит DTD, но браузер никогда валидацией не занимался и вряд ли будет.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
AKS
Дата 5.3.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Ferromarron @  5.3.2007,  14:50 Найти цитируемый пост)
на страницу созданный тип документа никакого влияния не оказывает.

Цитата(Document Object Model Core)

Объектная модель документа не позволяет редактировать объявление типа документа.

DocumentType interface

PM MAIL   Вверх
SelenIT
Дата 6.3.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Sardar @  5.3.2007,  21:26 Найти цитируемый пост)
браузер никогда валидацией не занимался и вряд ли будет

Sardar, разве application/xhtml+xml Мозилла/Опера не валидируют? Или я что-то путаю?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Sardar
Дата 6.3.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(SelenIT @  6.3.2007,  08:19 Найти цитируемый пост)
разве application/xhtml+xml Мозилла/Опера не валидируют?

Результат валидации это отказ рисовать документ при любой ошибке согласно DTD в доктайпе. Ни один серьёзный браузер этим не страдает. Но это конечно не позволяет нам писать не валидно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
SelenIT
Дата 7.3.2007, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Sardar @  6.3.2007,  23:35 Найти цитируемый пост)
отказ рисовать документ при любой ошибке согласно DTD в доктайпе

Sardar, странно, мне всегда казалось, что при "честной" отдаче XHTML-контента как application/xhtml+xml в Мозилла/Опера именно это и происходит, плюс выдается сообщение о первой найденной ошибке... разве не так?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Sardar
Дата 7.3.2007, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(SelenIT @  7.3.2007,  01:03 Найти цитируемый пост)
странно, мне всегда казалось, что при "честной" отдаче XHTML-контента как application/xhtml+xml в Мозилла/Опера именно это и происходит

Поспешил, так как контент с application/xhtml+xml никогда не отдавал, потому как ИЕ (даже 7) не понимает (предлагает сохранить страницу). Действительно с этим Content-type бродилка будет проверять документ на well-formed XML, т.е. является ли документ синтаксически верным XML. Валидность (правильное вложение тегов, например span не может иметь div, хотя его и можно выставить как display: block) не проверяется, т.е. DTD всё таки игнорируется.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
SelenIT
Дата 7.3.2007, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Sardar @  7.3.2007,  02:22 Найти цитируемый пост)
будет проверять документ на well-formed XML... DTD всё таки игнорируется

Sardar, большое спасибо за разъяснение, эту разницу я как-то упускал из виду...

Цитата(Sardar @  7.3.2007,  02:22 Найти цитируемый пост)
ИЕ (даже 7) не понимает

Жалко...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 7.3.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Sardar @  7.3.2007,  02:22 Найти цитируемый пост)
DTD всё таки игнорируется

А я бы воздержался от подобного утверждения. В своем примере (может не очень удачном, но демонстрирующем зависимость) я могу наблюдать различия в отображении содержимого страницы. Попытайтесь поочередно оставлять один из двух Doctype:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11-strict.dtd">

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<style type='text/css'>
body {
    scrollbar-base-color:red;
}
div {
    font-size:110px;
}
table td {
    font-size:100%;
}
</style>
</head>
<body>
<div>Hello world
  <table>
    <tr>
      <td>Hello world</td>
   </tr>
  </table>
</div>
</body>
</html>

В IE кроме шрифта будет варьироваться еще и цвет полосы прокрутки.

PM MAIL   Вверх
Sardar
Дата 7.3.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



AKS, не совсем, доктайп без URL всё равно бросает IE в quirksmode, а там браузер может рисовать как хочет. Чтиво и более ясное чтиво.
Кстати, валидация на отрисовку влиять не должна, она просто говорит допустимый/валидный ли документ или нет. Если не валидный, то браузер может отказаться рисовать документ или попытаться понять, что имел в виду верстальщик исходя из контекста.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
AKS
Дата 7.3.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Sardar @  7.3.2007,  18:37 Найти цитируемый пост)
доктайп без URL всё равно бросает IE в quirksmode

Мой IE6 не "бросает", поэтому и написал пример.

Цитата(Sardar @  7.3.2007,  18:37 Найти цитируемый пост)
она (валидация) просто говорит допустимый/валидный ли документ или нет

Речь идет о DTD, который сообщает браузеру о том, какому типу соответствует документ. Исходя из этого браузер должен решить, каким образом "преподнести" конкретную страничку. Мой код это наглядно демонстрирует, но Вы, видимо, даже не стали смотреть...
PM MAIL   Вверх
Sardar
Дата 7.3.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(AKS @  7.3.2007,  18:02 Найти цитируемый пост)
Мой IE6 не "бросает", поэтому и написал пример.

А как ты это понял, если тут явно в табличке стоит, при HTML 4.0 Transitional, без URL будет quirksmode. Ну только если надеешся, что ИЕ ступит и 4.01 не посчитает за 4.0, принимая доктайп как "Unrecognized DOCTYPE", тогда да, режим будет "стандартным". Но по поведению что ты привёл, браузер всё таки в quirksmode smile

Цитата(AKS @  7.3.2007,  18:02 Найти цитируемый пост)
Речь идет о DTD, который сообщает браузеру о том, какому типу соответствует документ.

Нет, DTD объявляет (весьма ограниченно, по сравнению с XMLSchema) правила вложения тегов и аттрибуты. Хотя само понятие доктайпа действительно объявляет тип документа, например HTML или DocBook. Но браузер (любой другой софт) не должен принимать решения о типе документа исходя из URL на .dtd


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0844 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.