html5嵌入函数,javascript – 如何从嵌入式svg中调用父html文档中的函数

本文介绍如何在SVG元素实例上监听点击事件,并通过`correspondingUseElement`属性将点击事件传递给父文档,以便调用父文档中的svgElementClicked函数。通过实例代码展示了SVG元素与DOM节点交互的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

this example.

svg中的代码如下所示:

document.getElementById("svgroot").addEventListener("click",

sendClickToParentDocument,

false);

function sendClickToParentDocument(evt)

{

// SVGElementInstance objects aren't normal DOM nodes,

// so fetch the corresponding 'use' element instead

var target = evt.target;

if(target.correspondingUseElement)

target = target.correspondingUseElement;

// call a method in the parent document if it exists

if (window.parent.svgElementClicked)

window.parent.svgElementClicked(target);

else

alert("You clicked '" + target.id + "' which is a " + target.nodeName + " element");

}

在父文档中,您有一个脚本,其中包含您要调用的函数,例如:

function svgElementClicked(theElement)

{

var s = document.getElementById("status");

s.textContent = "A

"> element with id '" + theElement.id +

"' was clicked inside the

theElement.ownerDocument.defaultView.frameElement.nodeName.toLowerCase() +

"> element.";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值