0

我正在尝试评论以下 html,以便它不应该转到超链接。

<a href="<!--http://www.google.com=-->" target="_blank" onclick="javascript:alert('Navigation Prevented')">CLICK HERE FOR GOOGLE</a>

我无法评论 target="_blank"。如果我这样做它不起作用,它也会在页面上显示 javascript。

如何让页面显示警报以及停止在新选项卡中打开页面。我希望取消 target="_blank" 的效果。

我们不能为 html 内联多个评论吗?

4

4 回答 4

1

元素的属性值内不能有注释标签。

您可以通过添加一个return false;. 这会阻止浏览器跟踪该链接:

<a href="http://www.google.com" target="_blank"
   onclick="javascript:alert('Navigation Prevented'); return false;">CLICK HERE FOR GOOGLE</a>

小提琴:http: //jsfiddle.net/rBmjs/

于 2012-10-30T17:54:05.107 回答
1
<a href="google.com" target="_blank" onclick="javascript:alert('Navigation Prevented');return false;">CLICK HERE FOR GOOGLE</a>

其中最重要的部分是return false;ononclick属性。这指示浏览器在单击后立即取消此链接。所以会发生的是javascript将被执行,但链接不会被跟踪。

于 2012-10-30T17:54:12.093 回答
1

HTML 标记内不能有 HTML 注释,因为注释本身就是一个标记。

您可以false从事件处理程序返回以阻止浏览器跟踪链接:

<a href="http://www.google.com" target="_blank" onclick="javascript:alert('Navigation Prevented');return false;">CLICK HERE FOR GOOGLE</a>
于 2012-10-30T17:54:27.913 回答
1

在看到其他用户说评论不能包含在元素属性中后,我开始想知道为什么。当然这是一个不好的做法,但为什么它不工作呢?

我检查了HTML5 注释HTML4.01 注释的规范,答案在 4.01 规范中:

请注意,注释是标记

注释的<!一部分只是打开一个声明,然后>关闭它。它是--将声明标识为注释的字符串。当将注释语法与 doctype 声明和 CDATA 部分进行比较时,这一点变得很明显。

因为您不能将声明放在属性值中(我无法在规范中找到明确说明,但这似乎很明显),所以注释不能包含在属性值中。

有趣的是,HTML5 评论部分没有提到“评论是标记”注释。但是,我确信同样的规则仍然适用。

如果这有任何错误,请随时发布更正。

于 2012-10-30T18:13:44.150 回答