#php #html #inline #comments
#php #HTML #встроенный #Комментарии
Вопрос:
В этом тексте
<div class="foo" <!-- onclick="bar();" --> /></div>
/>
отображается в браузере (Chrome) и на устройствах iOS. Моей первой догадкой было удалить /
из <div>
, но тогда >
он все еще отображался в браузере, горе мне!
Решения?
Ответ №1:
Редактировать:
После обсуждения с OP было обнаружено, что метод onclick все еще необходим, поэтому решением было использовать <div class="foo" onclick="bar();"> </div>
без «прокомментированного кода» в нем.
Оригинальный ответ:
Попробуйте — <div class="foo" <?php /* onclick="bar();" */ ?> > </div>
что приведет к <div class="foo"> </div>
. Обратите внимание, что весь текст фильтруется вашим PHP.
Для JSP / ASP используйте <%-- --%>
комментарии в стиле. <div class="foo" <%-- onclick="bar();" --%> > </div>
Комментарии:
1.
<div class="foo" <!-- onclick="bar();" /-->
сработало как по волшебству (Chrome), ваша правка<div class="foo" <!-- onclick="bar();" --> >
не сработала, и>
текст все еще был виден.2. Так ли это? Это не сработало в IE, поэтому я обновил свой ответ, чтобы использовать
<%
3. Это бессмыслица (если, возможно, вы не пишете ASP вместо HTML. Я не знаю синтаксис комментариев ASP). Это зависит от того, что браузеры неправильно обрабатывают HTML для работы.
4. @Quentin Хотя я не тестировал его на ASP / JSP для решения именно этой проблемы, я совершенно уверен, что
<%-- --%>
они не отправляются в браузер. Они фильтруются во время компиляции.5. в таком случае почему бы вам просто не использовать тег in div
<div class="foo" onclick="bar();" ></div>
without<!-- -->
? Это тоже сработает.
Ответ №2:
Удалите комментарий. Я предполагаю, что браузер интерпретирует закрытие комментария как конечный тег. Просто поместите весь div в комментарий, с другой версией ниже.
Ответ №3:
Комментарии внутри тегов запрещены, поэтому ваш HTML неверен.
Если вам нужен комментарий, поместите его после конца тега:
<div class="foo"> <!-- onclick="bar();" --> </div>
Кроме того, у вас не должно быть /
символа в конце начального тега для div.
В HTML (до версии 5) он закрывает начальный тег, поэтому вы добавляете >
символ к данным. Большинство браузеров это не учитывают (хотя ваша проблема связана с комментарием).
В HTML-совместимом XHTML это запрещено.
В XHTML это превращает div в самозакрывающийся тег, поэтому конечный тег не имеет соответствующего начального тега.
В HTML 5 это, IIRC, запрещено.
Ответ №4:
Комментарий ( <!-- -->
) — это разметка, которую браузер должен игнорировать.
В этом случае ваша разметка недопустима, потому что вы вложили разметку в разметку недопустимым образом. Вам нужно будет удалить « onclick="bar();
» или переместить весь комментарий из открывающего тега div.
Комментарии:
1. На самом деле это не тег, хотя вы правы в том, что комментарии там не разрешены.