Jump to content
  • 0

Скрипт и DOCTYPE


TavlaD
 Share

Question

Помогите, пожалуйста подправить скрипт если это возможно под существующий DOCTYPE.

В если на страничке DOCTYPE не указан вообще, то скрипт работает:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<script language=JavaScript>
function show(object) {
object.style.display='block';
}
function hide(object) {
object.style.display='none';
}
</SCRIPT>
</head>
<body>
<a href="#">Введение</a><br><DIV id=q1 style="DISPLAY: block"></DIV>
<a href="java script:show(q2);java script:hide(q1);java script:hide(q3);java script:hide(q4);">Часть 1</a><br>
<DIV id=q2 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="java script:show(q3);java script:hide(q1);java script:hide(q2);java script:hide(q4);">Часть 2</a><br>
<DIV id=q3 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="java script:show(q4);java script:hide(q1);java script:hide(q2);java script:hide(q3);">Часть 3</a><br>
<DIV id=q4 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
</body>
</html>

Но если DOCTYPE уже указан, то скрипт не работает:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language=JavaScript>
function show(object) {
object.style.display='block';
}
function hide(object) {
object.style.display='none';
}
</SCRIPT>
</head>
<body>
<a href="#">Введение</a><br><DIV id=q1 style="DISPLAY: block"></DIV>
<a href="java script:show(q2);java script:hide(q1);java script:hide(q3);java script:hide(q4);">Часть 1</a><br>
<DIV id=q2 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="java script:show(q3);java script:hide(q1);java script:hide(q2);java script:hide(q4);">Часть 2</a><br>
<DIV id=q3 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="java script:show(q4);java script:hide(q1);java script:hide(q2);java script:hide(q3);">Часть 3</a><br>
<DIV id=q4 style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
</body>
</html>

JS я не знаю, поэтому не могу понять как DOCTYPE влияет на данный скрипт. А надо чтобы этот скрипт работал с DOCTYPE. Кто знает прошу помочь разобраться или объяснить. Заранее благодарю.

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Без пробелов, не обратил внимание. Это при вставке на форум от чего-то пробелы прописались.

Этот скрипт хотел использовать в следующем. Будут ссылки (как на рисунки "1","2","3","4"), либо типа страницами будут, либо названиями разделов. По умолчанию открыт первый DIV, остальные скрыты, при переходе по ссылкам первый DIV скрывается и на его месте тот, который приписан к той или иной ссылке.

5d780db44284.jpg

Link to comment
Share on other sites

  • 0

Вообще надо писать не <script language=JavaScript>, а <script type="text/javascript">.

Вы забыли заковычить аттрибут у тега + написали не тот атрибут. Закрывающий тег написан капсом.

Все печально, не удивительно, что нифига не работает.

<a href="java script: ..." - капец...

Link to comment
Share on other sites

  • 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language=JavaScript>
function show(id) {
document.getElementById(id).style.display='block';
}
function hide(id) {
document.getElementById(id).style.display='none';
}
</SCRIPT>
</head>
<body>
<a href="#">Введение</a><br>
<DIV id="q1" style="DISPLAY: block"></DIV>
<a href="#" onclick="show('q2');hide('q1');hide('q3');hide('q4');">Часть 1</a><br>
<DIV id="q2" style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="лень исправлять">Часть 2</a><br>
<DIV id="q3" style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
<a href="лень исправлять">Часть 3</a><br>
<DIV id="q4" style="DISPLAY: none">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
</body>
</html>

Link to comment
Share on other sites

  • 0

Great Rash, данный скрипт писал не я. Я писал выше, что в JS не разбираюсь и поэтому попросил помощи разобраться. Про пробел в <a href="java script: ..." я писал выше, что при вставке на форум он появился, если же вы про то, что выражение было вставлено в href, то это от незнания. скопировал чужое творчество. У меня проблема была лишь в том, что данный скрипт работал только без указания DOCTYPE.

ZoNT, спасибо за поправку, все заработало + учел замечания Great Rash

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
function show(id) {
document.getElementById(id).style.display='block';
}
function hide(id) {
document.getElementById(id).style.display='none';
}
</script>
</head>
<body>
<a href="#">Введение</a><br><DIV id="q1" style="DISPLAY: block"></DIV>
<a href="#" onclick="show('q2');hide('q1');hide('q3');hide('q4');">Часть 1</a><br>
<div id="q2" style="display: none;">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</div>
<a href="#" onclick="show('q3');hide('q1');hide('q2');hide('q4');">Часть 2</a><br>
<div id="q3" style="display: none;">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</div>
<a href="#" onclick="show('q4');hide('q1');hide('q3');hide('q2');">Часть 3</a><br>
<DIV id="q4" style="display: none;">
<a href="#">Глава 1.</a><br>
<a href="#">Глава 2.</a><br>
<a href="#">Глава 3.</a>
</DIV>
</body>
</html>

Edited by TavlaD
Link to comment
Share on other sites

  • 0

Вот нафига, пардон, ставить доктайп XHTML, чтобы писать под ним <DIV> и <br> (вдобавок размечая ими явный список)? Будьте честны хотя бы перед самими собой и валидатором! :angry:

И еще желательно в конец onclick-ов дописать return false (или, для краткости, return !1), чтобы длинные страницы не прыгали к началу при скрытии/показе разделов внизу.

Link to comment
Share on other sites

  • 0
И еще желательно в конец onclick-ов дописать return false (или, для краткости, return !1), чтобы длинные страницы не прыгали к началу при скрытии/показе разделов внизу.

Спасибо за дополнение, подправлю.

Вот нафига, пардон, ставить доктайп XHTML, чтобы писать под ним <DIV> и <br> (вдобавок размечая ими явный список)? Будьте честны хотя бы перед самими собой и валидатором! :D

А кто говорил, что будет только <DIV> и <br>? Я ведь обращался именно по тому, что конкретный недоскрипт не работает под определенным DOCTYPE. Я специально для тех, кто в этом разбирается сделал 2 тестовые странички с этим кодом, чтобы не пришлось сидеть и писать, а только скопировали, вставили у себя и проверили. DOCTYPE XHTML я сменить не могу, так как не имею прав, поэтому и подстраиваюсь.

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