我有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代碼更具可讀性嗎? –