我有SVG文件,它由多个链接组成。用户点击链接后,页面应显示结果。从SVG文件中调用javascript函数
SVG文件包含不同的遗传信息,需要显示多个结果。
Onclick我需要调用JavaScript函数来处理结果。但javascript:myfunction();当我点击SVG文件时没有调用。请建议任何替代解决方案或任何解决方法。
我觉得问题不是很清楚。更新信息
我有SVG文件。将它作为mysvg.svg文件保存在您的系统中。
<svg>
<g id="US">
<rect x='10' y='10' fill='#000000' height='100' width='100'></rect>
</g>
<g id="CA">
<rect x='150' y='10' fill='#0000FF' height='100' width='100'></rect>
</g>
<a xlink:href="#crisp">
<rect x="10" y="10" width="164.05078125" style="fill:none; stroke:none" height="100" pointer-events="fill" />
</a>
</svg>
我的HTML文件。
$(document).ready(function() {
$("a").click(function() {
alert('hi');
});
loadSVGasXML();
});
function loadSVGasXML() {
var SVGFile="myfile.svg"
var loadXML = new XMLHttpRequest();
function handler(){
var svgDiv = document.all.svgDiv;
if(loadXML.readyState == 4 && loadXML.status == 0) {
var xmlString=loadXML.responseText
svgDiv.innerHTML=xmlString
fitSVGinDiv()
}
}
if (loadXML != null) {
loadXML.open("GET", SVGFile, true);
loadXML.onreadystatechange = handler;
loadXML.send();
}
}
function fitSVGinDiv(){
var divWH=60
var mySVG=document.getElementsByTagName("svg")[0]
var bb=mySVG.getBBox()
var bbw=bb.width
var bbh=bb.height
//--use greater of bbw vs bbh--
if(bbw>=bbh)
var factor=bbw/divWH
else
var factor=bbh/divWH
var vbWH=divWH*factor
var vbX=(bbw-vbWH)/2
var vbY=(bbh-vbWH)/2
mySVG.setAttribute("viewBox",vbX+" "+vbY+" "+vbWH+" "+vbWH)
mySVG.setAttribute("width","100%")
mySVG.setAttribute("height","100%")
}
</script>
<body>
<!--<a href="#crisp"> hi </a>-->
<div id="svgDiv">
</div>
<br>
<br>
<a id="crisp"> hello</a>
</div>
</body>
</html>`
请添加更多,这样看起来好像长页。我想在我的svg文件中捕获锚标记的onclick函数
添加一些代码。尝试使用'onclick'而不是'javascript:'URI Schema。 – Pinal
我觉得问题不是很清楚。 – nutim
您可以通过正确缩进来让您的SVG代码更具可读性吗? –