Google chrome htmlToImage Chrome 64安全性错误:无法读取';cssRules';来自'的属性;CSSStyleSheet';:无法访问规则

Google chrome htmlToImage Chrome 64安全性错误:无法读取';cssRules';来自'的属性;CSSStyleSheet';:无法访问规则,google-chrome,html-to-pdf,wkhtmltoimage,Google Chrome,Html To Pdf,Wkhtmltoimage,新的Chrome64安全更新似乎破坏了htmlToImage库。没有一个样式被正确计算,并且被渲染为完全没有应用样式 有人知道解决方法/修复方法吗?我需要将CSS放在服务器上并允许CORS吗?我刚刚修复了这个错误 分叉lib并提出拉取请求。在合并之前,您可以使用分叉回购: 通过将package.json中的html目标替换为image: "html-to-image": "git+https://github.com/kmap-io/html-to-image.git" 关于bug的信息

新的Chrome64安全更新似乎破坏了htmlToImage库。没有一个样式被正确计算,并且被渲染为完全没有应用样式


有人知道解决方法/修复方法吗?我需要将CSS放在服务器上并允许CORS吗?

我刚刚修复了这个错误

分叉lib并提出拉取请求。在合并之前,您可以使用分叉回购:

通过将
package.json
中的
html目标替换为image

"html-to-image": "git+https://github.com/kmap-io/html-to-image.git"


关于bug的信息

Chrome正在抱怨(抛出一个错误)试图读取一个不存在的属性。Firefox也会抱怨,但他们只会发出警告,而不是错误。修复包括替换

if (sheet.cssRules) {
  ...

没有缺点(即:当
cssRules
存在于
sheet
上时-这是一个样式表-脚本迭代规则并将它们添加到文档中,正如所设想的那样)


如何修补(直到合并)

出于某种原因,简单地用我提交更改的fork替换库的repo对这个包不起作用。我要求lib的作者添加关于如何在pull请求后构建的说明,因为他们在自述文件中声明,pull请求和贡献是受欢迎的。在此之前,以下是如何使用
修补程序包
应用修复程序:

  • 在项目的
    包中添加
    “准备”:“补丁包”
    脚本中
  • npm i修补程序包--保存开发文件
  • node\u modules/html到image/lib/embeddewebfonts.js中,将第7行从
试试看{

  • npx补丁包html到图像
如果您有从头开始构建项目的部署脚本,则需要在调用
npm run build
(或类似的,取决于堆栈)之前应用补丁:

就这样

合并修复程序时,您需要运行:

npx patch-package html-to-image --reverse

我遇到了一个错误。模块未找到:无法解析“html到图像”。有什么想法吗?@mcottingham我也遇到了同样的错误。我无法找到正确构建模块的方法。我要求模块所有者更新他们的自述文件,说明如何执行此操作。但是,我发现了如何使用
补丁包
modu在不分叉的情况下应用更改le,我现在正在测试它。我将在本地运行后更新我的答案,包括所有必需的步骤。@mcottingham,我更新了所有步骤,使它适合我。太棒了,谢谢!我必须将导入从
import htmlToImage从'html to image'
更改为
import*,作为htmlToImage从'html to image'
更改为
import*,并且哦,它工作得很好!
if (sheet.hasOwnProperty('cssRules')) try {
git apply --ignore-whitespace patches/*.patch
npx patch-package html-to-image --reverse