Jump to content
  • 0

Спрятать DIV сразу после подгрузки JavaScript


MoLoToK
 Share

Question

У меня имеется меню на JavaScript и меню простое. Мне надо, чтобы меню простое скрывалось, если JavaScript включен.

То есть, если JavaScript выключен — пользователь видит лишь меню без JavaScript (plain html, чтоль). Если же JavaScript включен — пользователь будет видеть лишь меню на JavaScript.

Я знаю, как можно спрятать тот DIV с простым меню через java script: сделать обработку события при щелчке по тексту или ссылке. А как же сделать так, чтобы, к примеру, блог div id="simplemenu" прятался сразу же, как подгрузился JavaScript (то есть, когда JavaScript в браузере включен)? Чтоб не надо было ничего дополнительно щёлкать: чтобы бац, и всё!

Edited by MoLoToK
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Есть много вариантов.

В худшем случае, скрипт после менюшки:

<script>
document.getElementById('simplemenu').style.display = 'none';
</script>

можно так:

window.onload = function() {
document.getElementById('simplemenu').style.display = 'none';
}

По хорошему нужно делать это в обработчике события document DOMContentLoaded, но в IE с ним проблемы, там нужно ловить document onreadystatechange.

Мне кажется, лучше использовать какой-нибудь фреймворк (конечно, не только для скрытия менюшки, а вообще в проекте), например, jQuery:

$(document).ready(function() { $('#simplemenu').hide(); });

Link to comment
Share on other sites

  • 0

По хорошему, все что нужно — дождаться загрузки элемента. Во всех браузерах это 100% будет так, когда парсер доберется до <script>, в эксплорере это будет так, если у <scritpt> будет поставлен магический атрибут defer

Link to comment
Share on other sites

  • 0
Есть много вариантов.

В худшем случае, скрипт после менюшки:

<script>
document.getElementById('simplemenu').style.display = 'none';
</script>

Вот так я сделал:
<div id="simplemenu">
<script>
document.getElementById('simplemenu').style.display = 'none';
</script>

То есть, решил крыть этот элемент сразу же, как только он появляется в коде (вызываю этот скрипт прямиком из этого элемента, который и надо скрыть). Работает.

Можно поинтересоваться, почему этот случай является худшим? Да, можно и jQuery подцепить, но ради такого подгружать весь арсенал, весом в 50 с лишним килобайт... Можно и другими вариантами, но зачем? Код ж простой, достаточно мизерный. Почему Вы посоветовали его для худшего случая? В чём минус-то?

И вообще, это нормально, что я вот так скрипт воткнул? Или его следует поставить лишь после </div> от simplemenu?

Edited by MoLoToK
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