Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获(承诺中)在克隆的iframe#2460中找不到元素_Javascript_Reactjs_Typescript_Html5 Canvas_Html2canvas - Fatal编程技术网

Javascript 未捕获(承诺中)在克隆的iframe#2460中找不到元素

Javascript 未捕获(承诺中)在克隆的iframe#2460中找不到元素,javascript,reactjs,typescript,html5-canvas,html2canvas,Javascript,Reactjs,Typescript,Html5 Canvas,Html2canvas,如何修复此错误 我的代码: const wrapper=document.createElement(“div”); const myHTMLString=“你好”; wrapper.insertAdjacentHTML(“afterbegin”,myHTMLString); //console.log(“>>”,包装器); html2canvas(包装,{useCORS:true})。然后((画布)=>{ appendChild(画布); log(“canvas>>”,wrapper.appe

如何修复此错误

我的代码:
const wrapper=document.createElement(“div”);
const myHTMLString=“你好”;
wrapper.insertAdjacentHTML(“afterbegin”,myHTMLString);
//console.log(“>>”,包装器);
html2canvas(包装,{useCORS:true})。然后((画布)=>{
appendChild(画布);
log(“canvas>>”,wrapper.appendChild(canvas));
var base64encodedstring=canvas.toDataURL('image/jpeg',1.0);
日志(“base6”,base64encodedstring);
});
错误:

176e275da87 1ms起始文档克隆
未捕获(承诺中)在克隆的iframe中找不到元素

html2canvas说(我用粗体突出显示):

该脚本允许您直接在用户浏览器上拍摄网页或其部分的“截图”。屏幕截图是基于DOM的 [……]

脚本遍历它加载到的页面的DOM。它收集所有元素的信息,然后使用这些信息构建页面的表示。换句话说,它实际上并不获取页面的屏幕截图,而是基于从DOM中读取的属性来构建页面的表示

这意味着传递给
html2canvas
的参数必须是文档中存在的元素。这解释了您得到的(未捕获)错误:

在克隆的iframe中找不到元素

显然,这个工具创建了一个临时的iframe,它在其中克隆文档。然后它将搜索作为参数传递的元素。因为在您的情况下,
wrapped
不是文档的一部分,所以此搜索失败

因此,在调用
html2canvas
之前,您可以执行以下操作:

 document.body.appendChild(wrapper);

然后,如果您不希望它保留在DOM中,请在画布渲染完成后再次删除它。

非常感谢您的解释
 document.body.appendChild(wrapper);