[英]Can't attach mousedown event to embed element
我好像用这个垃圾碰到了墙,无法理解它。 我有一个页面,其中包含一个相对复杂的SVG(其中嵌入了6个其他小的SVG),嵌入在embed
标签内。 当我尝试将mousedown
事件附加到它时,它根本不起作用。 这是标记:
<body>
<embed type="image/svg+xml" src="images/cog.svg" id="cog">
</embed>
</body>
然后在javascript我做
$(function(){
var cog = document.getElementById("cog");
document.addEventListener('mousedown', function(e){
console.log(e);
});
});
它不起作用。 此外,当我将事件附加到document
,当我点击该嵌入对象时它们也不会触发! 我搜索了这个东西3个小时,到处都是我看起来好像嵌入应该支持mousedown
即使没有任何问题。 这里有什么问题? 编辑:如果这里的任何帮助是完整标记的样子(我使用Foundation框架):
如果CORS不是问题,您可以尝试:
document.querySelector('embed').addEventListener('load', function(){
this.getSVGDocument().addEventListener('mousedown', function(){
alert('hello')});
});
根据规格 :
3。 如果上一步确定内容的类型是
image/svg+xml
,则运行以下子步骤:
但我找不到任何关于它应该如何处理事件的事情。
然而,似乎当它的src
被设置并返回一些东西时,事件被新的上下文捕获(无论是到达还是创建)。
如果没有设置src,请参阅@Marius注释 ,它会触发事件。
我认为embed标签是沙盒的,不能从外部源访问。 只需使用img
标签。
$('#logo').click(function() { alert('410'); });
img{ width: 200px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h3>Click the SVG</h3> <img id='logo' src="http://dev.w3.org/SVG/tools/svgweb/samples/svg-files/410.svg">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.