我正在寻找一种方法从Elixir .leex文件中调用客户端JavaScript代码,而无需安装Node.js
我的目标是将html转换为图像位串,类似于这个库:http://html2canvas.hertzen.com/
我也看了https://github.com/revelrylabs/elixir-nodejs作为一个例子。
在.*eex文件中,你可以将javascript作为字符串注入元素中,它应该可以工作。对于简单的js,我在我自己的。ex文件中的heex符号中这样做。例如,
<button onclick="(() => document.documentElement.scrollTop = 0)()">
Scroll to top
</button>
如果你的html2canvas函数是在交付给客户端的javascript包中定义的,那么触发你在。*eex文件中作为字符串编写的函数应该可以工作。
在我看来,这真的不应该为非平凡的js做。如果您正在使用Phoenix LiveView,请查看钩子。你可以编写你的自定义js,并在钩子上触发它,或者使用钩子来推送一个事件,你将在Elixir中处理服务器端。