我一直在尝试通过 javascript 访问 SVG 图像的一部分。外部文件(同域)中的图像由外部 js 文件(同域)操作。
像这样的例子:
<html>
<head>
<title>My Title</title>
<meta charset="utf-8">
<script defer="defer" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script defer="defer" src="controls.js" type="text/javascript"></script>
</head>
<body>
<img id="spikeroad" src="map.svg" alt="loadbarspike"/>
</body>
我之前问过这个问题:可以getElementByID decend into SVG docs吗?
我已经阅读并考虑了此处看到的其他人的反馈:如何使用 Javascript 访问 SVG 元素,包括所有额外的答案,但我似乎无法让它工作。
涉及事件时是黑匣子吗?我需要使用吗?(至少对我而言)有一些关于此的错误信息。但是,我的代码对任何一个都不起作用。
我的主要症结似乎(对我来说)是让“加载”事件触发。
这是我的最新版本:
$(document).ready(function() {
'use strict';
$(window).on("load", function () {
var svgContainer = document.getElementById("spikeroad");
var svgDoc = svgContainer.contentDocument;
var inner = svgDoc.getElementById("innerrect");
inner.addEventListener("mousedown", function() {
console.debug('inner box was clicked');
}, false);
}, false);
});
任何更多的反馈将不胜感激。