Mozilla Firefox不会在addEventListener中加载SVG对象('load'

sir*_*jay 11 html javascript jquery svg jquery-svg

我不知道为什么,但它适用于Chrome和Safari,而不适用于Mozilla.我有object加载svg文件的html标签.文件包含.s0类.我想在你点击那个课时处理事件.

谁知道出了什么问题?sry,object当我试图在那里粘贴代码时,jsfiddle没有显示.

<object data="jo.svg" type="image/svg+xml" id="obj"></object>
Run Code Online (Sandbox Code Playgroud)

$(function() {
    var a = document.getElementById('obj');
        a.addEventListener("load", function() {

            // !!!
            console.log('this line is not reachable in Mozilla or reached before svg loaded');

            var svgDoc = a.contentDocument;
            var els = svgDoc.querySelectorAll(".s0");
            for (var i = 0, length = els.length; i < length; i++) {
                els[i].addEventListener("click", function() {
                    alert('clicked');
                }, false);
            }
        });
});
Run Code Online (Sandbox Code Playgroud)

cet*_*ver 8

主要是你需要决定是否使用jquery,不要将jquery-code与本机javascript代码混合使用.

Javascript版本:

<!doctype html>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<object data="http://gbip.ru/poselki/genplan/5/full/gp.svg" type="image/svg+xml" id="obj"></object>
<script type="text/javascript">
    window.addEventListener('DOMContentLoaded', function() {
        var obj = document.getElementById('obj');
        obj.addEventListener('load', function(){
            console.log('loaded');
        });
    });
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jquery版本

<!doctype html>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<object data="http://gbip.ru/poselki/genplan/5/full/gp.svg" type="image/svg+xml" id="obj"></object>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var $obj = $('#obj');
        $obj.on('load', function () {
            console.log('loaded');
        })
    });
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ubuntu 14.04.3 LTS,Firefox 40.0.3