0

TL;DR 我怎样才能使用 X3D,使得文件中不能引用外部资源,也不能运行 javascript。

我试图允许在 Medium.com 中嵌入 SVG 和 X3D(通过嵌入)。SVG 可以通过标签以安全的方式嵌入。<img这确保了 SVG 永远不能使用 javascript,也不能使用外部资源。尽管有人可能会争论这种安全性是否必要(以及它是否过多地限制了 SVG),但我确实认为这对于嵌入来说是件好事;您不希望嵌入加载跟踪像素、开始发出声音或显示应该再次登录到 Medium 的弹出窗口(注意:SVG 是从自己的域加载到 iframe 中的,因此浏览器会保护它访问父范围,仍然有很多 javascript 可以做的事情)...我喜欢安全开始的想法,并且,如果有必要并且我们对如何做有很好的感觉,慢慢地允许更多用例。截至目前,Medium 中的 SVG 嵌入是实时的

我绝对愿意为 X3D 做一个类似的嵌入我目前正在写一篇关于python-3d-modeller-hobby-project (MacPy3D)的(缓慢)进展的博客,如果您有一种简单的方法将 3D 模型共享为嵌入事情就会更容易解释。X3D 似乎是执行此操作的理想方式——显然我希望其他人能够使用相同的工具。所以我的问题是,是否有任何方法可以显示 X3D:

  • 没有javascript可以在打开时运行
  • 由于用户交互(例如 onclick),无法运行任何 javascript
  • 不能加载外部资源(我知道这将暂时限制 X3D 的一些可能性,例如纹理,除非这些作为 blob in-file 提供)。

即使是关于如何防止上述问题之一的提示也会有所帮助。

快速概述系统应该如何工作:

  • 将使用 X3D 文件创建一个公共要点(示例
  • 然后(通过 X3D<inline标签)将该文件包含到一个空的 X3D 场景中——这是迄今为止我发现的将外部 X3D 文件包含到页面中并使其呈现的唯一方法:
<html>
  <body>

            <script type="text/javascript"
                    src="https://www.x3dom.org/download/x3dom.js"> </script>
            <link rel='stylesheet' type='text/css'
                    href='https://www.x3dom.org/download/x3dom.css'></link>
            <x3d>
                <scene>
                    <inline url="https://gist.githubusercontent.com/reinhrst/99de8d5fdb5c7278b42f1fa63d1289b6/raw/fdfbfb650e694e52d0c400141b4dd15f9e13a874/ball.x3d"> </inline>
                </scene>
            </x3d>
            
  </body>
</html>
  • 将 html 文件(通过 oEmbed 和 Embedly 的魔力)放入 Medium 中的页面(或其他一些支持嵌入的系统)
4

0 回答 0