以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  window和document  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=37164)


--  作者:vachin
--  发布时间:8/24/2006 5:17:00 PM

--  window和document
我使用embed 在一个html文件中嵌入svg

脚本文件可以在html文件中使用<script>引入
也可在svg中使用<script>引入,
通常对于js中的函数是一样的(svg以utf编码引入脚本,所以不支持中文)

但是我发现,二者的window对象是不同的
js在html中引用时,Adobe SVGview提供的一些变量和函数则无法使用
如window.contextMenu为空
而js在svg文件中引入时,则没有问题

现在问题来了,只有一个js文件,只在html文件中引入js(主要是考虑js中的中文,所以在svg中不使用script),这是js脚本如何获取诸如window.contextMenu等对象???


--  作者:wwwtiger
--  发布时间:8/25/2006 9:08:00 AM

--  
二者的WINDOW对象是不同的,因此在HTML中使用SVG的WINDOW对象要指明SVG的ID

<html><head><title>SVG事件</title>
<body >
<script language="JavaScript" >

function showContext()
{

        var SvgMainMapDoc=id1.getSVGDocument();
        var s=id1.window.printNode(id1.window.contextMenu.firstChild);
        alert(s);
        
  }
</script>
<embed name="id1" pluginspage=http://www.adobe.com/svg/viewer/install/ align="top" src="1.svg" height="200px" width="400px" type="image/svg+xml">
<input type="button" value="显示" name="show" onclick="showContext()">
</body>
</html>



--  作者:vachin
--  发布时间:8/25/2006 9:56:00 AM

--  
非常感谢!

还有一个问题

我使用id1.getSVGDocument().parentWindow 为什么获取不到svg的父窗口呢??


--  作者:vachin
--  发布时间:8/25/2006 2:44:00 PM

--  
还有,如何实现左键点击某个图元来弹出svg的菜单(不是自己绘制的)

svg有没有一个函数来显示菜单??


--  作者:wwwtiger
--  发布时间:8/28/2006 1:49:00 PM

--  
1, 父窗口是否指的是HTML的WINDOW对象?如果是,在SVG的脚本中,可以使用SVG的WINDOW对象获得
var parentWindow=window.parent;
如果你的脚本在HTML中,缺省的WINDOW对象就是SVG的父窗口
2,在ADOBE VIEWER中好像没有显示菜单的函数


--  作者:vachin
--  发布时间:8/28/2006 5:22:00 PM

--  
那如果我想用onclick()来显示菜单,就只有自己来绘制了吗??
这可比较麻烦啊!
--  作者:welfred
--  发布时间:8/29/2006 12:15:00 PM

--  
在ADOBE VIEWER中的右键菜单是可以定义的,在本版中搜索一下,此类帖子太多了


--  作者:wwwtiger
--  发布时间:8/29/2006 1:09:00 PM

--  
恐怕只能自己做一个模拟的左键菜单,或者到网上找一个别人做好的SVG或HTML菜单。SVG1.2中通过的RCC可以使用XHTML中的UI,但你总不能指望所有的客户都安装了支持SVG1.2的浏览器吧。不知道其它高手有没有更好的办法。
--  作者:vachin
--  发布时间:8/30/2006 11:46:00 AM

--  
嗯,还是自己画吧
--  作者:lisa_apple
--  发布时间:7/4/2007 9:52:00 AM

--  
我在svg的JS中尝试window.parent;
结果获取出来的不是html的window啊.
查了一下svg的window对象,
发现它没有parent这个属性啊.

--  作者:wwwtiger
--  发布时间:2006-8-28 13:49:00

--  
1, 父窗口是否指的是HTML的WINDOW对象?如果是,在SVG的脚本中,可以使用SVG的WINDOW对象获得
var parentWindow=window.parent;
如果你的脚本在HTML中,缺省的WINDOW对象就是SVG的父窗口
2,在ADOBE VIEWER中好像没有显示菜单的函数



--  作者:lisa_apple
--  发布时间:7/4/2007 10:08:00 AM

--  
svg下用window.parent来引用父html的window对象是正确的.
刚才自己搞错了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms