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

问题描述

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

解决方案

帮你解决了这个问题,因为在浏览器中使用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)

时间: 2024-08-30 10:30:31

在SVG中添加了Javascript,但是不能在JSVGCanvas中运行。的相关文章

java web-JTabbedPane中添加了JPanel,然后在Jpanel中如何添加JInternalFrame

问题描述 JTabbedPane中添加了JPanel,然后在Jpanel中如何添加JInternalFrame 代码如下 public class TestInternalFrame { private JFrame frame = new JFrame("JInternalFrame"); // private JTabbedPane tab = new JTabbedPane(); private JPanel mainPanel = (JPanel) frame.getConte

android中在Layout布局文件中添加控件ID,在Activity中findViewById找不到

        一直用着好好的eclipse开发android的应用,突然新建的项目中发现在Layout布局文件中控件ID在R中不能自动生成了.然后在Eclipse中通过Project->Clean操作之后在R中就生成了控件的ID,这样也太麻烦了.突然想到前几天做个项目需要把eclipse中的自动构建取消掉了,然后目前就不能自动生成了,需要手动操作,在eclipse中设置自动构建就好了,具体操作Project->Build Automatically.在build automatically出

怎么在Word中添加箭头等框架流程符号

  怎么在Word中添加箭头等框架流程符号?办公过程中经常会使用WORD工具制作文本,初入职场的你还在简单敲一堆又一堆的字儿就上交领导吗?怎样让文本更生动立体呢?下面给大家分享一下,在word文档中添加箭头框架等流程符号的方法,需要的朋友赶紧来看一下吧. 1.首先,打开自己创建的word文档 ,假如现在想插入一个箭头. 2.在上边的菜单栏找到"插入",在子菜单栏找到"形状"随即出来一堆形状,找到""点击. 3.随即会发现鼠标变成了一个十字星,如图

在Access 2007表中添加和删除字段

在创建Access2007表之后,有时需要修改表的设计,在表中增加或删除字段.在Access2007中,可以在"设计"视图和"数据表"中添加或删除字段. 一.在"设计"视图中添加或删除字段 在"设计"视图中添加或删除字段的操作步骤如下: (1)在"教学管理"数据库中,打开"学生"表并切换到设计视图.添加一个"出生日期"字段,选中"系别"字段行. (

Delphi为窗体的系统菜单中添加选项

通常在应用程序中,如果单击标题栏的左侧图标,就会弹出一个窗体的系统菜单,在其中可以完成最小化.最大化和关闭等操作.本实例将演示如何在窗体的系统菜单中添加自己的选项. 在窗体中添加一个TMainMenu组件,其中TMainMenu组件中的选项将要被添加到窗体的系统菜单中.添加组件后的窗体如图1所示. 图1 添加组件后的窗体 在TMainMenu组件生成的菜单中添加一个File菜单,在这个菜单下面添加一个Exit选项. 在本程序开始运行时就会把TMainMenu组件生成的菜单添加到窗体的系统菜单中,

万彩动画大师怎么在动画视频中添加录音效果

  万彩动画大师怎么在动画视频中添加录音效果?在动画视频中添加录音效果能增强动画视频的说服力.万彩动画大师支持轻松添加录音,用生动的语言和形象的表达传递您的想法.具体操作如下: 1.新建场景-点击录音按钮-开始录音 打开工程,新建场景,点击录音按钮,倒计时开始后进行录音. 2.停止录音-播放/重新录音/应用 录音完成后,按停止键暂停录音,然后选择该录音直接播放.重新录音或直接应用到场景中. 3.应用录音-拖动音频条调整录音时长-双击音频条-截取音频 点击"应用"按钮应用录音,把鼠标放到

qt-Qt 中添加资源文件到qrc中,文件过多过大时该怎么办?

问题描述 Qt 中添加资源文件到qrc中,文件过多过大时该怎么办? 这些文件不想暴露在程序目录中,有没有设么方法让这些资源全部编译进exe中?或者当文件过多过大时仍可以继续添加进qrc?还有qrc添加的资源文件的上限是怎么样的? 解决方案 貌似可以在工程PRO文件中,添加: CONFIG += resources_big 解决方案二: qt中添加资源文件qt资源文件Qt中的qrc文件 解决方案三: 有没有大神过来解答下啊!!!! 解决方案四: 你可以把资源文件先加密,然后程序中解密到内存中,然后

android-如何在运行时给spinner中添加items?

问题描述 如何在运行时给spinner中添加items? 我想在一个spinner中添加另一个类的list中的items.使用的下面的代码但是给出null pointer exception. ArrayAdapter<Address> adapter = new ArrayAdapter<Address>( this android.R.layout.simple_spinner_item HomePage.NearPlaces);adapter.setDropDownViewR

ios-在数组中添加对象出现错误╯□╰

问题描述 在数组中添加对象出现错误╯□╰ 在往数组中添加对象时报错:-[__NSArrayI addObjectsFromArray:]: unrecognized selector sent to instance 0xa0c5f70 代码: id max; NSMutableArray * MovePointsArray=[[NSMutableArray alloc]init]; max=[pointsArray objectAtIndex:0]; for(int i=0;i<[points