中间单击svg使用元素打开新选项卡

时间:2015-10-20 23:41:01

标签: firefox svg xlink

使用firefox,当我在self.nextResponder元素上单击鼠标中键(或按住Ctrl键并单击)时,会在新标签页中打开use网址(如xlink:href

错误或功能?

href

2 个答案:

答案 0 :(得分:1)

unresolved bug他们并不确定如何处理。触发器是xlink:href,它在某种程度上被内部处理,就像A.href一样(中键单击或ctrl +单击打开到新选项卡。)一种解决方法是将xlink:href元素隐藏在不可见的情况下RECT:



    <svg viewBox="0 0 400 80">
        <circle id="circle" cx="40" cy="40" r="30" fill="#29e" />
        <use xlink:href="#circle" transform="translate(70, 0)" style="stroke: red;" />
        <rect style="opacity:0" x="80" y="10" width="60" height="60" />
    </svg>
    <p>ctrl+click on right circle - nothing happens</p>
&#13;
&#13;
&#13;

如果您有任何需要触发的事件,您必须将它们绑定到不可见的矩形。

答案 1 :(得分:0)

作为先前回答中链接的错误的解决方法,您还可以在send-keys元素上使用pointer-events: none CSS规则:

&#13;
&#13;
use
&#13;
&#13;
&#13;

或声明所有<svg viewBox="0 0 400 80"> <circle id="circle" cx="40" cy="40" r="30" fill="#29e"></circle> <use xlink:href="#circle" transform="translate(70, 0)" style="stroke: red; pointer-events: none;"></use> </svg> <p>ctrl+click on right circle</p>元素不得与use一起点击。

显然,这种解决方法仅适用于元素根本不具有交互性的情况。