javascript - 如何使用hugo检测浏览器
问题描述
我正在寻找一种解决方案来根据浏览器类型显示不同类型的图像。如果浏览器是 safari,我想显示 png 文件,如果浏览器不是 safari,我想显示 webp 文件。
我认为这个线程已经提供了正确的 js 代码:如何检测 Safari、Chrome、IE、Firefox 和 Opera 浏览器?
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));
如何在 hugo if 语句中调用结果?
不知何故像这样:
{{ $safari := isSafari }}
{{ if eq safari true }}
<img src="{{ "img/bannerphone.png" | absURL }}" alt="phone">
{{ else }}
<img src="{{ "img/bannerphone.webp" | absURL }}" alt="phone">
{{ end }}
谢谢并恭祝安康
解决方案
只有在浏览器中加载网站后才会执行 JS。雨果被提前处决。在构建过程中没有办法实现这一点。您必须在前端处理 img src 切换,或者更好地使用像 cloudinary 一样的 img cdn ...
推荐阅读
- javascript - 返回“FromJS”状态 VS 在 React-Redux 中返回普通 JS 对象状态
- c++ - 为什么 &vector_char[0] 打印所有字符?
- python - 使用 for 循环遍历元组列表和内部元组
- python - 在 Python 3 中使用带有单个参数的 super()
- python - 在对象方法中更改后无法更改对象属性
- ios - Swift 从代码中设置约束 - 查看下视图
- angular - 检查已使用用户名的验证器无法正常工作
- python - 从 excel 表中获取员工详细信息
- angular - Angular:在类中使用服务
- python - 如何添加同一字段的不同值