#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Мне нужно полностью скрыть скрытый элемент. Если вы использовали надстройку для веб-разработчика Firefox, вы увидели, что одним щелчком мыши можно увидеть все скрытые элементы и их значение
Итак, я попытался применить
visibility: none;
display: none;
Это сработало не так, как ожидалось. Итак, я подумал о создании слоя с точно таким же размером скрытого элемента, придании ему z-index:999
одинакового положения, поэтому, даже если надстройка веб-разработчика попытается показать их, они просто увидят div.
Комментарии:
1. полностью скройте скрытый элемент!!!!
2. Чего вы вообще пытаетесь достичь? Вы не можете запретить людям просматривать ваш HTML-код, так в чем же здесь настоящая проблема? Я предполагаю, что большинство людей не используют плагин для отображения скрытых элементов на веб-сайтах.
3. Хм, почему ты хочешь это сделать? Похоже, вы просто хотите полностью удалить элемент.
4. Вы уверены, что
visibility: none
иdisplay: none
действительно применяются, а не переопределяются?
Ответ №1:
Если вы хотите полностью удалить HTML-содержимое внутри данного контейнера, вы можете сделать это с помощью jQuery:
$('#contentContainer').html('');
Для еще более быстрого способа сделать то же самое используйте empty():
$('#contentContainer').empty();
Или, чтобы удалить сам контейнер и все его содержимое, используйте remove():
$('#contentContainer').remove();
Комментарии:
1.
$('#contentContainer').empty()
сделало бы работу лучше2. Но если какой-нибудь подлый человек, намеревающийся украсть драгоценные скрытые значения @Sourav, отключит JavaScript, тогда код не будет запущен, и скрытые элементы все еще будут там, в DOM. Кроме того, конечно, если элементы удалены , то они также не будут отправлены обратно на сервер при отправке формы. В этом свете можно задаться вопросом, почему скрытые элементы были помещены на страницу в первую очередь.
3. Что ж, в таком случае, делайте все на стороне сервера. Например, в ASP.NET используйте ViewState. Конечно, если подлый человек достаточно умен, это все равно не помешает ему украсть информацию. Но это для совершенно другого обсуждения.
Ответ №2:
Такие плагины, как WebDeveloper и FireBug, позволяют разработчикам переходить к DOM веб-страницы. Нет способа иметь элемент в DOM и не видеть его ни в одном из этих инструментов.
Ответ №3:
Вы могли бы попробовать сгенерировать скрытый элемент с помощью jQuery. Например, вставить скрытый абзац внутри тела:
$('<p>test</p>').css({'display':'block'}).appendTo('body'); $('button.test').live('click',function(){
$('<p>some hidden field</p>').css({'display':'block'}).appendTo('body');
});
Комментарии:
1. Или вы могли бы сделать это с помощью PHP и jQuery (AJAX).
Ответ №4:
Для этой цели используетсяподключаемый модуль WebDeveloper .. это полезно для разработчика
об этом не о чем беспокоиться..
Ответ №5:
Должно быть достаточно использовать свойство display: none; возможно, это ошибка / особенность плагина WebDeveloper. Таким образом, возможно, существует скрытый параметр предпочтения, такой как «[X] Показывать невидимые элементы».
Или вы могли бы принудительно удалить объект из DOM, как другой ответ, предложенный несколько секунд назад.
Ответ №6:
сохраните внутренний HTML элемента в переменной JS и установите для html значение none
Ответ №7:
Если вы используете jquery :
$('#DivName').hide()
или очистить div:
$('#DivName').html('');
Чтобы удалить его:
$('#DivName').remove()