我在使用JavaScript和SVG時遇到問題。當我按下CTRL(或ALT)鍵在SVG元素上執行mouseDown事件時,瀏覽器(Firefox)會打開一個新的標籤頁/窗口。我只想調用一個函數來操縱我的SVG文檔,而不需要打開任何新的標籤或窗口。我不關心瀏覽器的屬性。我一直在處理我的另一個代碼,即使在相同條件下點擊SVG元素時也沒有任何反應,但這是一個遺留代碼,它有超過9000行,而且我無法確定瀏覽器的行爲原因不同。如何防止瀏覽器使用JavaScript打開新的選項卡/窗口?
所以,我想知道是否有任何SVG文件的屬性可以設置,以避免新的標籤/窗口。
實際上,我確實意識到這個問題是關於xlink的svg。我定義爲一個符號
<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()似乎不起作用。
請發佈您的JavaScript代碼的示例,以及您到目前爲止所嘗試的內容 – Curt 2012-04-20 14:25:49
我想你是以鏈接的形式做它們,當你不想將它們當做鏈接而是隻是點擊動作? – 2012-04-20 14:26:52
它超過9000! – 2012-04-20 14:29:26