JavaScript と SVG に問題があります。CTRL (または ALT) キーを押した状態で SVG 要素に対して mouseDown イベントを実行すると、ブラウザー (Firefox) が新しいタブ/ウィンドウを開きます。新しいタブやウィンドウを開かずに、単純に関数を呼び出して SVG ドキュメントを操作したいと考えています。ブラウザのプロパティは気にしません。私は自分の別のコードを扱っていて、同じ条件下で SVG 要素をクリックしても何も起こりませんが、これは 9000 行を超えるレガシー コードであり、ブラウザーが動作する理由を特定できません。違う。
したがって、新しいタブ/ウィンドウを回避するために設定できる SVG ドキュメントのプロパティがあるかどうかを知りたいです。
実は、この問題は svg の hte xlink に関するものであることに気付きました。シンボルとして定義されたアイテムがいくつかあります
<symbol id="TANQs">
<path d="m 97,42 a74,74 0 0,0 -94,0" />
<rect x="3" y="42" width="94" height="26" />
</symbol>
上記の例のように、要素も使用しています。
<use id="TQ-43120" x="100" y="200" **xlink:href="#TANQs"** onmouseover="mouseOver(evt)" onmouseout="mouseOut(evt)" oculto="false">
<lasca:segmento tag="2"-HC-310-1702-Ba-V-B1-SEG1"/>
</use>
私の問題は、使用要素をクリックすると発生します。ブラウザーはそれらを通常のリンクと見なすため、ctrl キーを押したままクリックすると、新しいタブが開きます。ブラウザのこの動作を回避する方法があるかどうか知りたいです。
示唆されているように、コマンド preventDefault() および stopPropagation() は機能していないようです。