openpgp.initWorker不是函数

时间:2019-06-25 10:47:17

标签: asp.net-mvc openpgp.js

请帮助...我正在尝试让openPGP.js在现有的ASP.Net MVC Web应用程序中工作。

我首先开始添加以下html脚本标记:

<script src="@Url.Content("~/Scripts/openpgp.min.js")"></script>
<script src="@Url.Content("~/Scripts/openpgp.worker.min.js")"></script>

在加载页面时出现此错误:

  

ReferenceError:未定义importScripts

因此,我进行了一些研究,并将RequireJS添加到我的页面中,如下所示: <script data-main='@Url.Content("~/Scripts/openpgp.min.js")' src="@Url.Content("~/Scripts/require.js")"></script>

然后在我打算运行解密逻辑的事件处理程序中,我有以下代码:

async function decryptBBRecording(commId) {
        var openpgp = require(['openpgp']);
        await openpgp.initWorker({ path: 'openpgp.worker.js' }) // set the relative web worker path
...
...
...
}

我正在“等待”行上

  

TypeError:openpgp.initWorker不是函数

我在想这是因为我尚未加载openpgp.worker.min.js文件。但是,通过脚本标记执行此操作时,出现以下错误:

  

ReferenceError:未定义importScripts

当我通过require(["@Url.Content("~/Scripts/openpgp.worker.min.js")"]);这样做时,我得到了:

  

错误:“ openpgp”的脚本错误   ReferenceError:未定义importScripts

请您向我提供有关如何使其正常工作的指导吗?

1 个答案:

答案 0 :(得分:0)

答案提供了here

您不必直接在页面上包含openpgp.worker.min.js。您也不需要require.js和对require的调用。只需在页面上包含openpgp.min.js,它就会全局定义openpgp,然后在执行操作时调用openpgp.initWorker