我似乎无法使用以下代码检测Chrome中的svg元素的转换点击(52.0.2743.116)。代码在IE和Firefox中都能正常运行。 Chrome会检测到常规鼠标点击,但不会在按下shift键时检测到。 Chrome确实检测到双班次点击。我还发现,如果svg是内联加载的,Chrome会检测班次点击。仅当外部svg加载了对象标记时才会出现此问题。这是Chrome的错误,还是我做了一些愚蠢的事情?是否有适用于所有浏览器的变通方法?
html和javascript:
<html lang="en">
<head>
<meta charset="utf-8" />
</head>
<body>
<object data="junk.svg" type="image/svg+xml"></object>
<script>
function selectElement(event) {
console.log("Mouse click detected");
if (event.shiftKey) {
console.log("Shift key is depressed!");
}
}
</script>
</body>
</html>
junk.svg:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="120.5px" height="97px" viewBox="0 0 120.5 97" style="enable- background:new 0 0 120.5 97;" xml:space="preserve">
<rect x="31.5" y="28" onclick="parent.selectElement(evt)" style="stroke:#000000;stroke-miterlimit:10;" width="62" height="43"/>
</svg>