sic*_*cks 12 javascript svg ruby-on-rails html4
我正在为Eve Online构建一个游戏内浏览器RoR应用程序.我的应用程序的一个要求是显示graphviz生成的SVG图.我遇到了一些在这种环境下满足我的要求的问题.
Eve的IGB没有官方文档,但wiki表示:
新的EVE Online游戏内浏览器(代号为Moondoggie)基于两个元素组合的技术堆栈:
Awesomium:一个中间件层,它将呈现的网页作为3D引擎可解析的数据提供.Awesomium由Khrona Software开发.
Chromium:一个中间件层,提供进程间通信,网页呈现,HTTP通信以及编写Web浏览器所需的所有其他基础知识.它本身就基于Apple的Webkit框架.Chromium是一个主要由谷歌主导的开源项目.
因此,Moondoggie能够通过Acid3测试,因此可以支持完整的HTML 4.01和CSS3规范.
我需要我在SVG中包含的链接才能访问我的应用程序的javascript.嵌入它<embed>或<object>将SVG放在我的JS文件范围之外.
使用<embed>或<object>DOES在游戏内浏览器中正确渲染svg.当它像我在下面那样内联时,它会显示一行文本,其中包含来自SVG的文本元素.
更新
这里我在的地方.我很确定这大部分都是多余的,因为我没有注意到只是单独使用render file:我自己的内部视图.我认为mime类型注册更多用于respond_to,但我不确定如何在这种情况下使用它.
主视图片段:
<%= render "map/map" %>
Run Code Online (Sandbox Code Playgroud)
部分视图文件:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
<head>
<title>Embedded SVG</title>
</head>
<body>
<%= render file: @map.output_file_path %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
配置/初始化/ mime_types.rb:
Mime::Type.register "image/svg+xml", :svg
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它在<object>标签内呈现良好但在内联时不呈现.如何<object>在主视图中模拟环境中的环境?或者,如何让<object>标签访问我的javascript函数?
| 归档时间: |
|
| 查看次数: |
2520 次 |
| 最近记录: |