我有一個SVG文檔,我使用<embed>
標籤將其放置在HTML文件中。我想使用Javascript訪問文檔,然後將文檔中的元素鏈接到JavaScript事件處理程序。這裏是我的代碼:通過Javascript訪問嵌入式SVG
HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="home.css">
</head>
<body>
<embed id="embed" src="resources/Home.svg" style="width:100%;height:100%;position:fixed;top:0;left:0;bottom:0;right:0;"/>
</body>
<script src="MapInteractivity.js"></script>
</html>
的Javascript:
var svgObject = document.getElementById('embed');
var svgDoc
svgObject.addEventListener("load",function() {
svgDoc = svgObject.contentDocument;
alert("SVG contentDocument Loaded!");
}, false);
var maryland = svgDoc.getElementById("Maryland");
maryland.addEventListener("mouseenter", function(event) {
event.target.style.color = "purple";
setTimeout(function() {
event.target.style.color = "";
}, 500);
}, false);
問題是我遇到的是svgDoc始終計算爲未定義。我嘗試過使用不同的方法,如getSVGDocument()
來訪問嵌入式文檔對象,但無濟於事。我在這裏錯過了什麼?
這與Paul LeBeau的答案一起,爲我解決了這個問題。謝謝! – Danny