javascript - Vue + Nuxt JS - 如何在 "global"函数中获取主机名?

标签 javascript vue.js nuxt.js

我有一个多域页面,它应该以不同方式显示每个域的组件。因此我喜欢有一个“全局”函数,我可以在模板内的“v-if”语句中使用它

我遵循了使用插件创建全局对象的建议 how-to-define-a-global-method-accessible-to-all-components .不幸的是我此时不知道如何获取主机名/域名,因为js对象“window”似乎未定义?

知道我如何才能最好地实现这一点吗?谢谢

我的插件“global.js”=> 返回“window”对象未定义的错误

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>

最佳答案

将您的插件模式设置为客户端。

plugins: [
    { src: '~/plugins/myplugin.js', mode: 'client' }
]

或者将你的调用包装到 window 对象,

if (process.client) {
  console.log('window.location', window.location)
}

关于javascript - Vue + Nuxt JS - 如何在 "global"函数中获取主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59469955/

相关文章:

vue.js - 如何使用 SSR 提高 Nuxt 的速度性能

javascript - 如何将选择元素的 itemindex 设置为 -1?

javascript - Sencha Touch Framework 中的左侧导航 View (关于 Ext.data.TreeStore 的问题)

nuxt.js - 使用 vitest 测试 Nuxt3 中的 Pinia 存储,抛出 `useRuntimeConfig` 未定义

vue.js - Vuetify 新手 : try to add v-tooltip to a dynamic ouput

vue.js - 构建项目时在 Vue.js 中找不到相关模块

javascript - 动态 Nuxt 页面选择

javascript - SVG/D3.js 在饼图标签前添加图片

javascript - 从 Controller 返回 JavaScript 作为内容或 JavaScriptResult

vue.js - 如何将数组数据加载到 Vuetify 选择输入