Javascript shopify上的html2canvas错误:未捕获引用错误:未在htmlinkElement.onload上定义onLoadStylesheet

Javascript shopify上的html2canvas错误:未捕获引用错误:未在htmlinkElement.onload上定义onLoadStylesheet,javascript,html,shopify,html2canvas,Javascript,Html,Shopify,Html2canvas,我正在尝试在Shopify产品页面上使用html2canvas将div转换为imgURL以设置为表单值。每当我使用html2canvas时,都会出现以下错误: 未捕获引用错误:未在HTMLLinkElement.onload上定义onLoadStylesheet 当我试图找出错误时,它只会将我指向用消息突出显示的 列表“icons”中的每个字典都应该包含一个非空的UTF8字符串字段“type” 由于某种原因,这也会阻止表单发布 html2canvas(document.querySelector

我正在尝试在Shopify产品页面上使用html2canvas将div转换为imgURL以设置为表单值。每当我使用html2canvas时,都会出现以下错误:

未捕获引用错误:未在HTMLLinkElement.onload上定义onLoadStylesheet

当我试图找出错误时,它只会将我指向用消息突出显示的

列表“icons”中的每个字典都应该包含一个非空的UTF8字符串字段“type”

由于某种原因,这也会阻止表单发布

html2canvas(document.querySelector("#container"), {useCORS: true, logging: false}).then(canvas => {
    document.getElementById("imgURL").value = canvas.toDataURL();
});

如何修复此问题?

我找到了解决方案,如果您使用ScriptTags并从自己的域加载JavaScript,则会出现错误,解决方案是在创建ScriptTag时使用cache=true,这将从Shopify的CDN和html2canvas works加载JavaScript

以下是C#中创建带有缓存的脚本标记的代码片段:

dynamic scriptTagBody = new ExpandoObject();
scriptTagBody.script_tag = new ShopifyScriptTag()
{
    Event = "onload",
    Src = "https://example.com/script.js",
    DisplayScope = "all",
    Cache = true
 };
 HttpContent content = new JsonContent(scriptTagBody);
 content.Headers.Add("X-Shopify-Access-Token", "MyAccessToken");
 string url = "https://yourshop.myshopify.com/admin/api/2021-04/script_tags.json";
 await _httpClient.PostAsync(url, content);

shopifScriptTag
在上面的代码片段中是一个具有这些属性的简单POJO

我找到了解决方案,如果您使用ScriptTag并从自己的域加载JavaScript,那么您将得到错误,解决方案是在创建ScriptTag时使用cache=true,这将从Shopify的CDN和html2canvas works加载JavaScript

以下是C#中创建带有缓存的脚本标记的代码片段:

dynamic scriptTagBody = new ExpandoObject();
scriptTagBody.script_tag = new ShopifyScriptTag()
{
    Event = "onload",
    Src = "https://example.com/script.js",
    DisplayScope = "all",
    Cache = true
 };
 HttpContent content = new JsonContent(scriptTagBody);
 content.Headers.Add("X-Shopify-Access-Token", "MyAccessToken");
 string url = "https://yourshop.myshopify.com/admin/api/2021-04/script_tags.json";
 await _httpClient.PostAsync(url, content);

ShopifyScriptTag
在上面的代码片段中是一个具有这些属性的简单POJO

我也针对相同的问题运行它我也针对相同的问题运行它