SVG对象父节点上的JavaScript事件
JavaScript Events on Parent of SVG Object
我目前正在编写一个脚本,该脚本允许用户在SVG文档中嵌入JavaScript文件,以实现内容的平移和缩放。我尝试了几乎所有我能找到的SVG平移和缩放的变体,但只找到了一种具有一致的跨浏览器支持。不幸的是,在编写脚本时假设SVG将在HTML中写入,而不是通过对象标记嵌入。由于我正在处理相当多的预渲染SVG,因此仅链接到每个SVG中的外部JavaScript文件会更有效。到目前为止,转换的一切都进行得很顺利,但是我遇到了一点障碍。该脚本依赖于鼠标事件击中包装SVG对象的div。它看起来像这样:
<div id="svgwindow">
<div id="wrapper">
<object id="svg" data="test.svg" type="image/svg+xml"></object>
</div>
</div>
JavaScript的一个例子:
parent.document.getElementById("svgwindow").addEventListener("mousewheel", Zoom, false);
只要事件发生在svg对象未填充的svgwindow区域,此脚本就可以成功添加事件。一旦事件发生在对象之上,事件就不会被捕获。我还没有找到任何类似的实例来帮助解决这个错误,所以任何帮助将是伟大的。
由于<object>
标签将捕获所有事件,并且没有办法阻止它,因此您所能做的就是将另一个<div>
绝对放置在将接收事件的包装器<div>
的顶部。
当然,如果你交换到<image>
标签而不是<object>
标签,不会捕获事件,但对图像有限制,例如,所有数据必须在一个文件中,不允许脚本,这可能使它不适合你。如果合适的话,这是最简单的方法。
相关文章:
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 在同一个javascript事件处理程序中调用不同的函数
- Javascript事件;在新选项卡中打开”;
- 存在每个时间元素的javascript事件
- Javascript事件.锚的目标问题
- 带有参数的Javascript事件处理程序
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- firefox中的Javascript事件范围问题
- Firefox中的JavaScript事件参数
- 在动态加载的PHP表单上放置JavaScript事件
- 如何在Javascript事件上从JSNI设置GWTClass字段
- Javascript事件发射器一次处理多个事件
- 在下拉式javascript事件监听器中选择时触发事件
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- 显示触发的JavaScript事件
- 正在取消IE11中的JavaScript事件
- 页面卸载期间的JavaScript事件循环
- 存在其他参数时访问Javascript事件
- 阻止Javascript事件影响子元素
- 如何在事件处理程序中获取 javascript 事件对象