我有一個 vanilla js jsencrypt包,我需要在我的 nuxt 應用程式中使用它,當從Nuxt.config.js匯入時,該包本身作業正常,但在使用組件中的 head 物件匯入時遇到問題,讓我向您展示我的代碼
nuxt.config.js //這有效
head: {
title: 'App',
htmlAttrs: {
lang: 'en'
},
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: '' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
],
script: [
{
src: "/js/jsencrypt.min.js",
body: true
}
],
},
組件呼叫//這不起作用
export default {
head() {
return {
script: [
{
src: "/js/jsencrypt.min.js",
body: true
}
],
}
},
}
我正在使用理論上應該可以作業的頭部標簽,但它沒有
安裝()函式
mounted(){
var encrypt = new JSEncrypt();
}
我收到錯誤回復
JSEncrypt is not defined
由于此類將僅用于加密一個組件,因此全域注冊它似乎不是明智之舉,有人知道問題出在哪里嗎?
uj5u.com熱心網友回復:
在 head 標簽中引入 JSEnquiry 可以正常作業,但您需要留出時間來下載和決議它。在已安裝的鉤子中呼叫它是不允許的。
在您安裝的掛鉤中試試這個。
const onAvailable = (variable, callback) => {
function checkVariableIsAvailable(variable, callback) {
if (typeof window[`${variable}`] === 'undefined') {
setTimeout(function() {
checkVariableIsAvailable(variable, callback)
}, 1)
} else {
callback()
}
}
checkVariableIsAvailable(variable, callback)
}
onAvailable('JSEncrypt', () => {
var encrypt = new JSEncrypt();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/373158.html
標籤:javascript Vue.js nuxt.js js加密
