openpgp.initWorker не является функцией - PullRequest
0 голосов
/ 25 июня 2019

Пожалуйста, помогите ... Я пытаюсь заставить openPGP.js работать в существующем веб-приложении ASP.Net MVC.

Сначала я добавил следующие теги 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")"]);, я получаюthis:

Ошибка: ошибка сценария для "openpgp" ReferenceError: importScripts не определен

Пожалуйста, можете ли вы дать мне руководство о том, как заставить это работать?

1 Ответ

0 голосов
/ 25 июня 2019

Ответ предоставлен здесь .

Вам не нужно включать openpgp.worker.min.js непосредственно на странице.Вам также не нужно набирать require.js и звонить на require.Просто включите openpgp.min.js на странице, это глобально определит openpgp, а затем вызовите openpgp.initWorker, как вы делаете.

...