Я использую Javascript, ASP.net и С#. Я хочу написать собственный элемент управления, чтобы проверить, включен ли Javascript в браузере, и отобразить сообщение. Я использую следующий подход:
элемент управления показывает сообщение «Javascript отключен» в теге
<div>
элемент управления добавляет в раздел раздел Javascript с этой строкой:
window.onload = function() {{document.getElementById('My_MESSAGE_DIV').style.display = 'none';}}
Проблема в следующем:
когда Javascipt включен, событие onload
запускается, когда страница уже отображается, поэтому на странице появляется сообщение «Отключение Javascript» и немедленно исчезает, я бы хотел этого избежать!
Любое предложение?
Возможное решение:
- найти событие, которое запускается до отображения документа. Какие-либо предложения?
2 ответа
Гм, как насчет тега noscript для показать свое сообщение? Не всегда должно быть так сложно.
Я голосую за ответ Аннакаты. В качестве альтернативы - если вы хотите выбрать сложный путь;) - когда вы не хотите просто отображать сообщение, а обеспечиваете альтернативное поведение в случае наличия/отсутствия JavaScript. Я делаю что-то вроде контейнеров двух типов (divs, Panels или простые метки для сообщений), где контейнер, обеспечивающий функциональность JavaScript, скрыт с помощью тегов CSS (например, display:none). Затем я визуализирую JavaScript, который при запуске удалит «display: none» из части, поддерживающей JavaScript, и добавит ее в часть, не поддерживающую JavaScript. Если JavaScript не должен присутствовать, очевидно, будет показана только часть, не связанная с javascript.
Надеюсь, я смог объясниться. Но, как я уже говорил, для простых сообщений тег noscript всегда предпочтительнее. Всегда стремитесь к самому простому решению;
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.