0 0

在SVG中添加了Javascript,但是不能在JSVGCanvas中运行。5

我要做的是在svg中更换图片,添加了JS在svg中。
在浏览器上能够很好的运行,但是在蜡染的JSVGCanvas中却没有反应。
有没有办法解决这个问题呢?
先谢谢了!
2013年4月25日 10:11

1个答案 按时间排序 按投票排序

0 0

采纳的答案

帮你解决了这个问题,因为在浏览器中使用javascript操作svg的元素没有那么规范,而batik操作svg元素需要严格按照w3c的svg规范,所以svg文件中的方法需要改为:

function dragOn(spath){
	var imgView = document.getElementById("imgView");
	imgView.setAttributeNS( "http://www.w3.org/1999/xlink", "href", spath ); 
}

我已经测试过,具体可参考:
http://www.w3.org/Graphics/SVG/WG/wiki/Href
下面这些方式中,就最后两个是Correct正确的。
el.setAttribute( "href", "foo.png" ); 
el.setAttribute( "xlink:href", "foo.png" ); 
el.setAttributeNS( "xlink:href", "foo.png" ); 
el.setAttributeNS( "xlink", "href", "foo.png" ); 
el.setAttributeNS( xlink, "href", "foo.png" ); (where there is no JS variable called "xlink") 
el.setAttributeNS( "http://www.w3.org/1999/xlink", "href", "foo.png" ); (Correct) 
var xlinkns = "http://www.w3.org/1999/xlink"; el.setAttributeNS( xlinkns, "href", "foo.png" ); (Correct) 

2013年4月26日 14:00

相关推荐

    vue动态渲染svg、添加点击事件的实现

    - 另一个需要注意的地方是,不能直接在Vue模板中使用`v-on:click`与非原生事件。如果要添加自定义事件监听器,可以通过`this.$refs`来获取DOM元素并绑定事件。 ### 实现代码分析 在本文档中,实现的代码关键步骤...

    实现HTML5 SVG拖拽的JavaScript库插件

    接着,你可以在JavaScript代码中选择SVG元素并启用拖拽功能。以下是一个简单的示例: ```javascript var svgElement = document.getElementById('mySVGElement'); draggy(svgElement); ``` 在这个例子中,`draggy`...

    svg与javascript的交互实例教程

    4. **动态创建SVG**:JavaScript还可以在运行时动态创建SVG元素,这在构建数据可视化或复杂交互效果时非常有用。 5. **SMIL动画**:SVG包含一套内置的Simple Animation(SMIL)功能,可以让元素在时间轴上移动、...

    SVG中のJavaScript.xls

    而在SVG中集成JavaScript,可以极大地增强SVG图形的交互性和动态性,为用户带来更加丰富的视觉体验。本篇将深入探讨SVG与JavaScript的结合使用。 ### 1. SVG的基本结构 SVG文档通常由`<svg>`根元素开始,它定义了...

    svg与javascript交互

    SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它允许在网页上创建和展示复杂的图形,包括文字、线条、...在实际项目中,结合现代前端框架如React或Vue,SVG与JavaScript的组合能够发挥更大的威力。

    html5 svg 中元素点击事件添加方法

    最近在用svg的点击事件做东西,之所以用svg而不用canvas就是因为svg内的元素可以添加点击事件,他们之间详细的区别如下: Canvas 与 SVG 的比较(详见) 下表列出了 canvas 与 SVG 之间的一些不同之处。 Canvas •...

    svg通用操作javascript

    SVG,全称Scalable Vector Graphics,是一种基于XML的矢量图像格式,可以在网页中用于创建复杂的图形,具有高清晰度、放大不失真、可交互性等优点。JavaScript是SVG在HTML页面中进行动态交互的主要工具,通过...

    svg图在各种浏览器中显示

    2. **使用polyfill库**:如`Modernizr`和`SVG4Everybody`等库可以帮助在不支持SVG的浏览器中提供类似的功能。 3. **条件注释或特性检测**:通过JavaScript检测浏览器是否支持SVG,并根据需要加载不同的代码。 4. **...

    svg添加不同效果的提示信息

    在SVG图像中添加提示信息,通常是为了提供额外的交互性和用户反馈,使得图形更加易懂。这涉及到SVG的DOM操作和特定的提示元素或者属性的使用。 1. SVG DOM对象: SVG图像中的每个元素都可以被看作是一个DOM对象,这...

    snap.svg 中文参考手册 离线php版

    8. **兼容性和性能**:Snap.svg库经过优化,具有良好的浏览器兼容性,能在现代浏览器中流畅运行。同时,它尽可能减少了对SVG DOM的直接操作,提高了性能。 9. **插件系统**:Snap.svg有丰富的插件生态系统,可以...

    SVGedit是一个基于Web的快速由JavaScript驱动的SVG绘图编辑器

    1. **浏览器兼容性**:由于其基于Web的性质,SVGedit可以在几乎所有的现代浏览器上运行,包括Chrome、Firefox、Safari、Edge等,这大大提高了它的可访问性和实用性。 2. **实时编辑**:用户可以直接在浏览器窗口中...

    svgdraggyjs是一款可以实现拖拽SVG的JavaScript工具库插件

    然后,通过JavaScript选择需要添加拖拽功能的SVG元素,并调用插件提供的方法,如`makeDraggable()`,将其变为可拖动。 示例代码可能如下所示: ```html <script src="jillix-svg.draggy.js-d24f840"> <svg width=...

    javascript实现svg导出图片

    在SVG(可缩放矢量图形)与JavaScript的结合中,导出SVG为图片功能是一项常见的需求。SVG是一种基于XML的矢量图像格式,它允许创建高质量、可缩放的图形,广泛应用于网页设计和应用程序开发。JavaScript作为浏览器端...

    禁止鼠标右键及svg中自定义右键菜单

    总结起来,禁止鼠标右键和在SVG中自定义右键菜单涉及到JavaScript事件处理和DOM操作。通过监听`contextmenu`事件并调用`preventDefault()`方法,可以阻止浏览器的默认右键菜单。而在SVG中,我们可以结合CSS和...

    12---14[pan].rar_pan_svg_svg javascript_svg 平移

    在本主题中,我们将深入探讨SVG中的平移(Pan)操作以及如何通过JavaScript实现这一功能。 SVG平移是改变图形位置的一种基本变换。在SVG中,你可以使用`<g>`元素的`transform`属性来执行平移操作。这个属性接受一个...

    VM-SVG Javascript Lib

    【VM-SVG Javascript Lib】是一个专门用于网页图形绘制的JavaScript类库,它具有广泛的兼容性,能在各种浏览器环境中提供高质量的图形渲染。该库的核心功能是利用SVG(Scalable Vector Graphics)技术来创建矢量图形...

    JavaScript在基于SVG的网络地图中的应用.pdf

    本文详细介绍了 JavaScript 在基于 SVG 的网络地图中的应用,讨论了 SVG 的概念和特点、SVG 在网络地图中的应用、JavaScript 在基于 SVG 的网络地图中的应用等内容,为读者提供了一个全面的了解 JavaScript 在基于 ...

    svg动画的开始与停止

    通过使用脚本,我们可以在SVG文件中嵌入JavaScript代码,从而控制动画的行为。 在本例中,我们使用了以下代码来实现SVG动画的开始和停止: 首先,我们需要定义一个SVG文档,并在其中添加一个元素,用于容纳动画。...

    svg在web页面中的显示工具

    早期,SVG并未在所有浏览器中得到广泛支持,SVGWeb通过检测浏览器的类型和版本,自动在不支持SVG的浏览器中加载Flash插件作为备选方案,从而确保SVG内容能在大部分用户设备上正常显示。不过,随着现代浏览器对SVG的...

Global site tag (gtag.js) - Google Analytics