我正在做一个项目,我正在使用 Polymer 和 Web 组件构建一个包含多个节点和边的图形。我正在使用一个由我的公司内部开发的底层库,它不基于 Web 组件。这个库包含用于创建节点、初始化图等的函数。我创建了一个名为 graph 的自定义元素,它将与库进行交互。以下是该元素的声明:
<polymer-element name="cmp-graph" attributes="canvas" constructor="CMPGraph">
<template>
<div id="graph_win_placeholder">
<div id="graph_win" class="canvas">
<div id="graph_canvas" class="graph-area">
</div>
</div>
</div>
</template>
</polymer-element>
在我的元素 Javascript 代码中,我调用库中的一个函数来初始化图形。此函数调用需要画布 div 的句柄(id="graph_canvas" 的 div)。所以我在进行函数调用时将 this.$.graph_canvas 作为参数传递。但是该库抛出一个异常,因为它期望 div 的本机版本,而是得到一个包装的,因为 this.$.graph_canvas 对应于 div 的包装版本。
在加载我的应用程序时,我正在试验不同的解决方案并在查询字符串中将 shadow=native 作为参数传递。
但现在的问题是,我的应用程序只能在 Chrome、Canary 和 Opera 上运行,因为其他浏览器没有对 Shadow DOM 的原生支持。有没有其他方法可以解决这个问题?
任何帮助将不胜感激。
谢谢。