Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击事件不';t在<;对象>;标签_Javascript_Angular - Fatal编程技术网

Javascript 单击事件不';t在<;对象>;标签

Javascript 单击事件不';t在<;对象>;标签,javascript,angular,Javascript,Angular,我在锚定标记中有一个,锚定标记上有一个角度点击事件,如下所示: <a (click)="myAction()"> <object data="/images/icon.svg"></object> </a> 当我直接单击时,单击事件不起作用,但是,当我单击锚定标记的填充(或者我移除对象并用文本或图标替换它)时,单击事件起作用。这是什么原因造成的?是单独的文档;实际上,它们是s 改为使用或内联元素。看起来我可以向svg添加一个标记,该标记将

我在锚定标记中有一个
,锚定标记上有一个角度点击事件,如下所示:

<a (click)="myAction()">
  <object data="/images/icon.svg"></object>
</a>

当我直接单击
时,单击事件不起作用,但是,当我单击锚定标记的填充(或者我移除对象并用文本或
图标替换它)时,单击事件起作用。这是什么原因造成的?

是单独的文档;实际上,它们是
s


改为使用
或内联
元素。

看起来我可以向svg添加一个
标记,该标记将
postMessage
发送到父级:


让svg=document.querySelector('svg');
svg.addEventListener('click',()=>{
window.parent.postMessage('questions-click','*');
});
...
document.addEventListener('message',event=>{
如果(event.data==‘问题点击’){
//做点什么。。。
}
});

这种方法并不理想,但确实有效。

我能够使用
.png
在JSFIDLE上使用
,事件在没有角度限制的情况下工作@GetOffMyLawn简单的stackblitz中不会出现这个问题:你能重新创建吗?看起来,当你使用PNG时,它可以工作,但SVG是一个单独的文档树。“HTML元素表示一个外部资源,它可以被视为一个图像、一个嵌套的浏览上下文或一个由插件处理的资源”。因此,虽然浏览器可能能够遍历svg文件,但它对图像、pdf或swf不起作用。我不能使用图像,因为我需要悬停效果,
无法处理。如果我不需要在代码中的10个点中添加大量的
,那么我也不需要大量的
。使用虚拟href并防止默认操作,因为href对于区域是必需的。只是一个想法。但是您的需求表明,内联svg将是最好的解决方案。