我有一个多域页面,该页面应以不同方式显示每个域的组件。因此,我希望有一个“全局”函数,可以在模板内的“ v-if”语句中使用
我遵循建议使用插件how-to-define-a-global-method-accessible-to-all-components创建全局对象。不幸的是,由于js对象“窗口”似乎未定义,我目前不知道如何获取主机名/域名?
有什么想法可以最好地实现吗?谢谢
我的插件“ global.js” =>返回“窗口”对象未定义的错误
const cmsURLBuilder = {
isDomain(domain) {
return this.window.location.hostname.includes(domain);
},
}
export default ({app}, inject) => {
inject('cmsURLBuilder', cmsURLBuilder);
}
在我的模板中使用此全局对象
<template>
<div>
<iframe v-if="$cmsURLBuilder.isDomain('xxx')" id="frame-xxx" src="https://xxxx/..." />
...
</div>
</template>
答案 0 :(得分:1)
将插件模式设置为客户端。
plugins: [
{ src: '~/plugins/myplugin.js', mode: 'client' }
]
或包装对窗口对象的调用,
if (process.client) {
console.log('window.location', window.location)
}