例如:
<a /*title="need to be comment out"*/>a link</a>
答案 0 :(得分:31)
W3C documentation表明无法完成:
请注意,评论是标记。
这基本上意味着<!-- ...>
评论标记与任何其他标记一样,因此<a <!--title="need to be comment out"-->>a link</a>
与<a <span></span>>a link</a>
一样错误。
对于快速黑客攻击,我认为一个常见的选择是重命名该属性。当您获得无效的HTML时,您可以暂时删除该属性:
<a xtitle="need to be comment out">a link</a>
如果您碰巧使用服务器端语言,您还可以使用自己的注释语法。例如,在PHP中,您可以这样做:
<a <?php/*title="need to be comment out"*/?>>a link</a>
...生成此HTML:
<a >a link</a>
...在ASP.NET中,您可以使用<%-- Comment goes here --%>
,而MVC Razor语法为@* Comment goes here *@
答案 1 :(得分:3)
你做不到。评论只能在标签外开始和结束。
有些人将x预先发送到属性名称,从而更改它并导致它被忽略(因为它仍然经常在DOM中可见),但这是无效的。
答案 2 :(得分:3)
我通常只将_x
放在属性名称的末尾。然后该属性被忽略,因为它是未知的。因此,如果我想要从此元素中注释掉id
属性:
<input type="text" name="name" id="name">
我会改为:
<input type="text" name="name" id_x="name">
这样做的另一个好处是能够搜索“_x=
”来查找所有已评论的属性。
答案 3 :(得分:1)
无法执行此操作,但可以通过removeAttribute(attribute_name)
javascript调用删除属性。
或者,您可以使用<a nosuchns:title="nevershown">click</a>
等名称空间为要删除的属性添加前缀,并通过javascript删除命名空间。