javascript - 从 promise.js 接收错误 - 使用 Javascript 和 html2canvas 在 IE11 中克隆 HTML 对象
问题描述
更新 - 抱歉
我正在开发 DC.js 仪表板,并且正在尝试提供屏幕截图功能。目前,我开发了一个名为 DIV id 的按钮,其中包含所有图表,并将 SVG 转换为 Canvas,以便我可以使用 HTML2Canvas 进行屏幕截图。尽管在此过程中,我必须为图表提供内联样式才能使其正常工作,因此我必须创建一个不会在现有页面上进行更改的克隆对象。当我单击该按钮时,我在开发人员工具的控制台页面上收到此错误。错误是..
"Possible Unhandled Promise Rejection: TypeError: Unable to get property 'removeAttribute' of undefined or null reference."
我必须在 IE11 上工作,所以由于限制,这有点挑战性。我确实实现了 promise.js,因为 IE11 不支持 promise 功能。
例子:
<div id="masterContainer">
... 'all the html, svg, etc. elements to create the charts'
</div>
在 Javascript 中,我有一个调用 masterContainer 的按钮并执行它的过程。
function screenshot() {
var getContainer = $('#masterContainer');
var cloneObject = getContainer.clone(); -- I want to clone this div object along with the elements inside it.
elementsToCanvas(cloneObject); -- This is a function where it takes that html object and convert all the svgs, ect. to canvas. Also takes the cloneObject and apply it to html2canvas;
}
我只想为该 masterContainer 创建一个克隆对象,而不对现有页面进行更改...虽然它可以在不克隆对象的情况下工作,但在现有页面上进行了更改。请帮忙。
解决方案
目前尚不清楚您在这里问什么,但element.cloneNode
在 ie 11 中受支持。但是要克隆它的所有子项,您需要提供一个可选参数,true
,只需确保您不会意外将其添加到 DOM 并最终得到重复的 ID。
function screenshot() {
var clone = document.getElementById("masterContainer").cloneNode(true);
elementsToCanvas(clone);
}
更新:根据您粘贴的异常,在我看来这与克隆无关,但Promise
s 在 ie11 上不受支持。考虑使用条件polyfill。
推荐阅读
- java - Android studio Firebase 数据库查询选定值
- angular - 基于位置的 Angular 2 组件模板上的自定义 CSS 类
- regex - 使用正则表达式的最佳方式
- python-3.x - 当我使用变量参数初始化 dag 时,它会引发异常
- php - Woocommerce 中的自定义类别页面标题
- javascript - 如何按时间倒序从 DynamoDB 获取项目?
- python-3.x - WebElement.text 的访问时间增加
- tensorflow - 构建张量流图时如何定义需要输入numpy数组(不是张量)的损失函数?
- python - 如何在不使用额外内存的情况下将 Pandas 数据帧转换为 Numpy 数组
- node.js - 使用模板的请求技能的响应存在问题,Alexa 技能使用模板指令