shift点击加载了<object>的svg元素在Chrome中不起作用

时间:2016-08-07 06:26:10

标签: javascript google-chrome svg

我似乎无法使用以下代码检测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>

0 个答案:

没有答案