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)
主要是你需要决定是否使用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