5

我正在构建一个electron应用程序。在其中,我有一个webview带有preload脚本的。里面说脚本,我想用sweetalert.

我安装sweetalertnpm install --save sweetalert. 在我的脚本中,我加载它require('sweetalert')并使用swal("Hello world!");. 我现在注意到它看起来不正确,因为警报缺少所需的 CSS 文件。但是我正在加载它require('sweetalert'),这很好,因为sweetalert它可以保留在它的目录里面node_modules,我不必关心它,但它的 CSS 是它的一个组成部分,并且不会以同样的方式被拉动。

现在,解决这个问题的推荐方法是什么?请记住,我在一个javascript文件中,并希望保持这种状态。我真的必须去获取 CSS 文件并以某种方式注入它吗?既然它在里面,我将如何正确地做到这一点node_modules经过测试,由于Content Security Policy,在这种特殊情况下似乎无法完成。

无论哪种方式,与声明相比,这似乎太笨拙了require,更简单的解决方案不可用似乎很奇怪。

4

2 回答 2

-1

您必须像通常在浏览器中那样包含它,例如在 index.html 中。如果有的话,将其从模块文件夹复制到您的 css 文件夹中,并将其与链接标签链接。这取决于您使用的是普通电子还是其他样板模板,其中有一个 gulp/grunt 工作流程可以将其粘贴在哪里,但事实就是如此,电子只是一个运行您的 JS/html 的浏览器,所以它真的完全相同过程。require 只加载 JS 模块而不加载样式。

如果您想动态包含它,您可以使用与常规浏览器相同的技术(例如 document.write/create 元素)。

于 2015-11-20T22:21:30.850 回答
-2

我不熟悉sweetalert,但希望这会有所帮助。

您的 require 语法应该与此类似。

var sweetalert = require('sweetalert')

然后,您应该能够使用以下语法访问 sweetalert 对象上的方法。

sweetalert.someMethod()

请记住,只需要返回一个 javascript 对象。这些对象通常具有允许某些功能的方法。如果您想将 sweetalert 添加到您的页面,您需要将其注入到 html 中,或者 sweetalert 模块中的 javascript 需要动态创建包含 css 的 html。我希望能澄清一些事情并帮助您更好地了解一些内部运作。

于 2015-11-20T21:49:03.423 回答