阻止嵌入式SVG在Chrome上捕获鼠标事件

时间:2017-01-25 16:32:39

标签: javascript html google-chrome svg pointer-events

非常简单。我通过<object>在我的文档中嵌入了一个SVG,并且我在根pointer-events:none的样式中应用<svg>。它适用于Firefox但不适用于Chrome(我目前对其他任何浏览器都不感兴趣)

MWE

拥有HTML文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Why you no fix, Chrome?</title>
</head>
<body>
    <a id="click"><object data="svg.svg" type="image/svg+xml"></object></a>
    <script>document.getElementById('click').addEventListener('click',e => console.log(e));</script>
</body>
</html>

拥有SVG文件

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100" style="pointer-events:none">
    <path fill="#4a90d6" fill-opacity="1" stroke="#222222" stroke-width="2" d="M 0 0 L 100 0 L 50 100 z" />
</svg>

如果没有办法让事件冒泡到锚点(即:停止svg捕获),那么通过事件视界传递事件的方法也会很好

修改

我忘了添加<object>元素必须保持可点击状态。我强调MWE适用于Firefox,但不适用于Chrome

1 个答案:

答案 0 :(得分:1)

尝试

<object style="pointer-events:none" ... >

应该做的伎俩; - )