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

要素の属性にコメントを含めることはできないと他のユーザーが言っているのを見て、私はその理由が気になり始めました。確かにそれは悪い習慣ですが、なぜうまくいかないのでしょうか?

HTML5 コメントHTML4.01 コメントの仕様を確認したところ、答えは 4.01 仕様にありました。

コメントはマークアップであることに注意してください

コメントの<!部分は、単に宣言を開いて>閉じます。--宣言をコメントとして識別する文字列です。これは、コメント構文を doctype 宣言および CDATA セクションと比較すると明らかになります。

属性値内に宣言を入れることはできないため (仕様に明示的に記載されているものは見つかりませんでしたが、明らかなようです)、属性値にコメントを含めることはできません。

興味深いことに、HTML5 のコメントセクションには、「コメントはマークアップです」という注意事項が記載されていません。しかし、私は同じルールがまだ適用されていると確信しています。

これのいずれかが間違っている場合は、お気軽に修正を投稿してください。

于 2012-10-30T18:13:44.150 に答える
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;属性onclickです。これにより、ブラウザはこのリンクをクリックした後すぐにキャンセルするように指示されます。したがって、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 に答える