Jump to content
  • 0

Ошибка с <![if !IE]>


SCHNITZER
 Share

Question

Вот пример: http://html-test.1gb.ru/006Error/2.html.

Все нормально, но выдает ошибку.

Как же быть? Не могу исправить?

Код подгружаемого файла

<?xml version="1.0" encoding="utf-8" ?>

<div id='disappear' style='display:block; width:250px; height:140px; background:red;'>
</div>
<!-- загруктипр-->
<![if !IE]>
<script type="text/javascript">
$('#disappear').click(function () {
$(this).fadeOut(1500);
});
</script>
<![endif]>


<!--[if IE]>
<script type="text/javascript">
$('#disappear').click(function () {
$(this).hide();
});
</script>
<![endif]-->

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0

Не правильно!

Смотрим по данной ссылке, находим:

<![if !IE]><p>You are not using Internet Explorer.</p><![endif]>

Это не для ie. <!--[if IE]> - напротив, для него.

А даже без всей этой истории возникает ошибка.

<script type="text/javascript">
$('#disappear').click(function () {
$(this).fadeOut(1500);
});
</script>

Лишние данные после элементы документа.

Link to comment
Share on other sites

  • 0
<!--[if !IE]><--> Вот тут будет код, который НЕ увидит IE <!--><![endif]-->

Тут будет, вроде, код, которые не увидит ни один браузер, который не понимает условных комментариев.

 <![if !IE]>
...statements...
<![endif]>

Понимают все браузеры, но это не валидно с точки зрения W3C/

Link to comment
Share on other sites

  • 0

if.gif

С этим я давно разобрался. Вся эта таблица работает правильно, без ошибок. Давайте этот вопрос закроем.

А валидно, не валидно, мне все равно абсолютно, если все работает, быстро, без ошибок, то какая вообще разница. "Теория без практики ничто".

Вопрос в другом! Еще раз повторюсь, при подключении xml документа, если в нем скрипт, любой, без всяких if ie, возникает ошибка, хотя скрипт выполняется.

Link to comment
Share on other sites

  • 0
Вопрос в другом! Еще раз повторюсь, при подключении xml документа, если в нем скрипт, любой, без всяких if ie, возникает ошибка, хотя скрипт выполняется.

А в чем тогда ошибка? И можно пример на страницу?

Link to comment
Share on other sites

  • 0

http://html-test.1gb.ru/007/index.html

Код файла index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ru" xml:lang="ru">
<head>
<title> test </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
<script type="text/javascript" src='http://code.jquery.com/jquery-latest.min.js'></script>

<style type="text/css">
</style>

</head>

<body>

<div id='loadPage'></div>

<script type="text/javascript">
$(document).ready(function () {
$('#loadPage').load('insert.xml');
});
</script>

</body>
</html>

Код insert.xml:

<?xml version="1.0" encoding="utf-8" ?>

<div id="red" style="display:block; width:200px; height:150px; background:red;"></div>

<script type="text/javascript">
$('#red').click(function () {
$(this).fadeOut(1500);
});
</script>

Link to comment
Share on other sites

  • 0

Попробуйте так:

<?xml version="1.0" encoding="utf-8" ?>

<div id="red" style="display:block; width:200px; height:150px; background:red;"></div>

<script type="text/javascript">
$(document).ready(function(){
$('#red').click(function () {
$(this).fadeOut(1500);
});
});
</script>

Edited by XprogeR
Link to comment
Share on other sites

  • 0
В этом смысла нет, но как вариант я так делал. Не помогло.

Это исключительно предположение, вы хотя-бы текст ошибки скажите какой?

UPD: У меня на тестовой странице все работало IE 7, 6-го к сожалению нет.

Edited by XprogeR
Link to comment
Share on other sites

  • 0

Ты смотрел, когда я закрывающий div перенес после скрипта, т.к. подгружаемый xml хочет, что бы все было "в одном блоке". Вернул назад.

Вообще в подгружаемом xml огромное количество ошибок, которых нет, если этот блок вставить в главный html документ. Менял подгружаемый xml на html, картина таже. Черт...

Link to comment
Share on other sites

  • 0
Вообще в подгружаемом xml огромное количество ошибок, которых нет, если этот блок вставить в главный html документ

должно быть что то вроде такого:

<?xml version="1.0" encoding="utf-8" ?>
<Content type="html">
<div id="red" style="display:block; width:200px; height:150px; background:red;"></div>
<![CDATA[
<script type="text/javascript">
$('#red').click(function () {
$(this).fadeOut(1500);
});
</script>
]]>
</Content>

Link to comment
Share on other sites

  • 0

to arez:

Во-первых, <![CDATA[ после <script type="text/javascript">, или текст скрипта отображается на странице. Во-вторых, не в этом дело.

Хотел извинится перед psywalker, т.к. сразу мне написал <!--[if !IE]><!--> HTML <!--><![endif]--> (забыл ! во второй скобке, гыы).

Написал галерею, там сплошные ошибки, я панику и развел ))

Кому интересно, вот они:

1. <![if !IE]> (не показывать для IE) - на многих сайтах рекомендуют писать так. В html все правильно, но в подгружаемом файле не проходит. Видимо, "не валидно". ^_^

2. Ошибки, если ссылка на скрипт находится в подгружаемом файле. Кое что изменил, и что бы плагин работал, пришлось в XML файл включить <script type="text/javascript" src="LightBox/jquery.lightbox-0.5.js"></script>. Накосячил, и сам себя заморочил, в общем.

3. В XML файле все должно быть в одном блоке, даже <p> подошло. Думаю, всё в <div> самое оно.

4.   использовать нельзя.

Остался единственный вопрос. ie пишет: "ошибка, бубубу. Строка 190402275, символ 49". Какая строка? Как не интерпретирую, не могу понять. Через другие браузеры все ясно, а ie?

Edited by SCHNITZER
Link to comment
Share on other sites

  • 0
Во-первых, <![CDATA[ после <script type="text/javascript">, или текст скрипта отображается на странице. Во-вторых, не в этом дело.

Дело в том что ты пытаешся просто вставить xml файл, а нужно его распарсить, либо с помощью JS на клиенте, либо с помощью PHP/XSLT/etc. на сервере. Не проще в этом случаи просто импортировать plain text, раз парсить xml не хочется?

В XML файле все должно быть в одном блоке, даже <p> подошло. Думаю, всё в <div> самое оно.

В XML не должно быть все в одном блоке, в XML у каждого элемента должен быть "родитель", кроме элемента который является корневым. И XML может содержать не только теги HTML, элементы могут называтся как угодно главное при парсинге все сделать верно, например:

XML

<books>
<book id='1'>
<aut>Some text</aut>
<isbn>Some text</isbn>
</book>
<book id='2'>
<aut>Some text</aut>
<isbn>Some text</isbn>
</book>
</books>

Можно распарсить в:

<div>
<p id='1'>
<b>Some text</b>
<span>Some text</span>
</p>
<p id='2'>
<b>Some text</b>
<span>Some text</span>
</p>
</div>

  использовать нельзя

В стандарте XML такой элемент записывается в виде "Š"

Link to comment
Share on other sites

  • 0

Спасибо!

"Дело в том что ты пытаешся просто вставить xml файл, а нужно его распарсить, либо с помощью JS на клиенте, либо с помощью PHP/XSLT/etc. на сервере. Не проще в этом случаи просто импортировать plain text, раз парсить xml не хочется?"

бррр, я в этом пока ничего не понимаю, прямо сейчас нет возможности в этом разбираться.

Если можно на пальцах объяснить что, зачем, почему, я был бы безмерно благодарен. А то я посмотрел несколько статей, "многобукв".

Вот теперь мне непонятно, зачем XML распарсивать, если теперь все без ошибок. И что такое вообще "распарсить"? "сделать синтаксический разбор" - мне ничего это не говорит...

Спасите заплутавшую душу!

P.S. Я же, кстати, могу вставить этот файл как html. Все равно это будет нужно?

Edited by SCHNITZER
Link to comment
Share on other sites

  • 0

Тут надо надо начать с вопроса почему у тебя что то "вставляется" в HTML страницу из другого файла, варианты

а) Файл отдает сторонний сервис (приложение) который ты ни как не можешь контролировать

б) Файл просто имеет расширение XML и не связан ни с каким другим сервисом, приложением

У тебя я так понял вариант Б поэтому лучше "вставлять" просто *.html файл. Парсить html не нужно.

Думаю что нет необходимости использовать технологию которую пока не знаешь и которая не дает явных преимуществ в реализации задачи ^_^

Link to comment
Share on other sites

  • 0

Спасибо.

Вкратце, что я хочу. Я пишу галерею. В альбоме 20 thumbnails. Кликаем интересующий thumb, загружается картинка с разными кнопками (следующая, предыдущая, увеличение lightbox, сохранение и т.п.). Это все как раз в файле XLM (их, соответственно, 20).

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

Так что, думаю, вариант б.

Тогда такой вопрос. Во вставке XLM файла первая строка "<?xml version="1.0" encoding="utf-8" ?>".

Если вставлять HTML файл, нужно что-нибудь подобное прописать, и что именно? Visual Studio упорно хочет, чтобы были html, head и body.

Link to comment
Share on other sites

  • 0

Помоему ты пытаешся изобрести велосипед (в лучшем значении этой фразы ^_^ ) примеров в инете AJAX галерей просто туча, например http://minishowcase.net/ На мой взгляд логичнее реализовывать архитектуру AJAX/JSON. Иформация же о изображениях должна лежать в БД, хранить ее в каких то отдельных файлах на диске не целесообразно.

Если вставлять HTML файл, нужно что-нибудь подобное прописать, и что именно? Visual Studio упорно хочет, чтобы были html, head и body.

Не нужно, если функция jquery load() позовляет обрабатывать любой файл на диске то можно обойтись и простым файлом без расширения или с расширением *.txt

Edited by arez
Link to comment
Share on other sites

  • 0

Вот именно, что "велосипед", а не "колесо", как в англоязычной поговорке "Re-invent the wheel". Мне кажется, подход "зачем изобретать велосипед" губительный и бесперспективный.

Мне на 100% не нравится, как эти галереи работают. Хочу создать свою галерею, чтобы и дизайн, и динамика была как мне нравится, как я задумал. С БД еще работать, как и с PHP, еще не умею, так что делаю пока как могу, не все же сразу.

А действительно потрясающие по дизайну (в конструктивном плане) и динамике галереи, которые мне понравились, все построены на flash, с которым я пока работать тоже не умею. В ближайших же планах.

Edited by SCHNITZER
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy