2016-03-06 66 views
-1

首先我知道如何动态改变SVG的颜色。我已经使用该解决方案从这样一个问题:如何在页面渲染过程中更改颜色SVG?

jQuery SVG image replacement

但我的情况是不同的。

在我的页面上,我有几个图标(SVG),并有一个颜色选择器。用户可以使用colorpicker更改图标。 所有工作正常。

现在我想用用户选择的图标的颜色生成整个页面的PDF。

我正在使用第三方PDF生成库,它接受我的页面URL并生成该页面的PDF。但问题是,颜色不适用于图标和PDF生成。我知道这个问题的原因,因为在文档准备就绪后,我将所有SVG img标签转换为实际的SVG标签,然后将颜色应用于用户选择的颜色。这一切都发生在页面渲染后。

但是PDF生成库不会等待此过程完成并在所有SVG图像转换为SVG并将颜色应用于它们之前生成PDF。

我不知道要先等待整个过程才能完成并生成PDF。

我尝试过缓存页面,但这也没有帮助。

任何帮助将不胜感激。 谢谢

+1

我们确实需要[mcve],所以我们可以看到你在做什么。 –

+0

由于隐私,我无法显示该页面。但让我解释清楚。我有一个交互式页面,并且在该渲染上有10个图标,如。在页面上还有一个颜色选择器,用户可以用它来改变图标的​​颜色。选择器颜色保存在数据库中。所以下一次当页面加载时,图标应该用选定的颜色着色....继续... – Hammad

+0

我用解决方案(链接给出的问题)首先转换所有作为其源的.svg并将它们转换到标签,然后我将颜色应用到他们每个人使用jQuery。但是这个过程在页面渲染时是可能的。完成后,用户将生成该页面的PDF。但是由于颜色过程发生在页面呈现之后,PDF生成库在发生此过程之前生成PDF,所以图标在生成的PDF中不会着色。 – Hammad

回答

0

我做到了。

解决方案是将代码封装在IIFE中,以便在页面加载时立即执行,而不是在DOM的就绪事件上执行。