Я использую Javascript, ASP.net и С#. Я хочу написать собственный элемент управления, чтобы проверить, включен ли Javascript в браузере, и отобразить сообщение. Я использую следующий подход:

  • элемент управления показывает сообщение «Javascript отключен» в теге <div>

  • элемент управления добавляет в раздел раздел Javascript с этой строкой:

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

Проблема в следующем: когда Javascipt включен, событие onload запускается, когда страница уже отображается, поэтому на странице появляется сообщение «Отключение Javascript» и немедленно исчезает, я бы хотел этого избежать! Любое предложение?

Возможное решение:

  • найти событие, которое запускается до отображения документа. Какие-либо предложения?
0
uince81 1 Июл 2009 в 15:33

2 ответа

Гм, как насчет тега noscript для показать свое сообщение? Не всегда должно быть так сложно.

3
annakata 1 Июл 2009 в 15:39

Я голосую за ответ Аннакаты. В качестве альтернативы - если вы хотите выбрать сложный путь;) - когда вы не хотите просто отображать сообщение, а обеспечиваете альтернативное поведение в случае наличия/отсутствия JavaScript. Я делаю что-то вроде контейнеров двух типов (divs, Panels или простые метки для сообщений), где контейнер, обеспечивающий функциональность JavaScript, скрыт с помощью тегов CSS (например, display:none). Затем я визуализирую JavaScript, который при запуске удалит «display: none» из части, поддерживающей JavaScript, и добавит ее в часть, не поддерживающую JavaScript. Если JavaScript не должен присутствовать, очевидно, будет показана только часть, не связанная с javascript.

Надеюсь, я смог объясниться. Но, как я уже говорил, для простых сообщений тег noscript всегда предпочтительнее. Всегда стремитесь к самому простому решению;

0
Juri 1 Июл 2009 в 15:45