我使用 Nuxt3 作为我的静态网站,并成功集成 OptinMonster 脚本来管理活动。但是,我遇到了一个问题,即 OptinMonster 脚本在初始页面访问和后续手动刷新期间可以正常运行。
app: {
head: {
script: [
{
src: 'https://a.omappapi.com/app/js/api.min.js',
async: true,
defer: true,
'data-user': 2345,
'data-account': 3453,
type: 'text/javascript'
},
]
}
}
不幸的是,当导航到应用程序内的其他页面时,OptinMonster 脚本似乎没有执行,并且活动无法显示。我发现了一个相关的 nuxt 问题thread,但无法找到解决方案。
为什么会出现这个问题?
解决方案
~/plugins/optinmonster.client.js
optinmonster.client.js
import { defineNuxtPlugin, useRoute } from 'nuxt/app';
let hasResetOptinMonster = false;
let oldPath = null;
/*
It resets optinmonster campaigns whenever the route changes and instantly loads them.
*/
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.hook('page:finish', () => {
const route = useRoute();
const currentPath = route.fullPath;
if (!hasResetOptinMonster || oldPath != currentPath) {
const optinMonsterApi = window.om23345_3432;
if (optinMonsterApi) {
optinMonsterApi.reset();
hasResetOptinMonster = true;
oldPath = currentPath;
}
}
});
});