Wordpress 条件.js

Wordpress conditional .js

提问人:Fran Segura Cruz 提问时间:11/13/2023 更新时间:11/13/2023 访问量:25

问:

我正在处理一个 wordpress 页面,并取决于它显示视频或图片的情况。目标是,当客户端使用的导航器是 **safari ** 时,显示图片,并在其余导航器中显示 vídeo。这是适用于桌面和 Android 的代码。

<video id="video" autoplay muted loop playsinline>
  <source src="https://elvientomedia.es/wp-content/uploads/2023/09/produccion-a-medida.webm" type="video/webm">
</video>

<img id="imagen" src="https://elvientomedia.es/wp-content/uploads/2023/08/Clientes-10.png" alt="Imagen alternativa" crossorigin="anonymous">

<script>
if ("safari" in window && window.safari.pushNotification) {
 var imagen = document.getElementById('imagen');
 imagen.src('https://elvientomedia.es/wp-content/uploads/2023/08/Clientes-10.png')
 imagen.style.display = 'block';
 var video = document.getElementById('video');
 video.style.display = 'none';
} else {
 var imagen = document.getElementById('imagen');
 imagen.style.display = 'none';
 var video = document.getElementById('video');
 video.style.display = 'block';
}
</script>

使用我附加的代码在桌面和 android 中运行良好,问题是当它在 iphone 中打开时。在这些情况下,它不会显示任何内容,无论我是在 chrome 还是 safari 中打开它,只要我在 iphone 中打开它,它就不会显示任何内容。

JavaScript 的HTML WordPress

评论

1赞 Rory McCrossan 11/13/2023
除了问题之外 - 你想这样做有什么具体的原因吗?webm 格式在 Safari 中得到了很好的支持,并且已经有一段时间了。没有必要通过浏览器嗅探来避免它。
0赞 disinfor 11/13/2023
这并不能回答这个问题,但与其使用,不如考虑更改为 on your video 和 img,因为无论使用什么浏览器,两者都会加载,从而导致不必要的资产下载。你可以使用 JS 根据浏览器加载依赖于媒体元素。另外,正如罗里所说,你为什么要这样做?display: nonesrcdata-srcsrc
0赞 Fran Segura Cruz 11/14/2023
嗨,@RoryMcCrossan!在这种情况下,发生了一些不寻常的事情 - 它没有正确编译。如果你在Safari中打开这个网站,你会注意到视频后面有一个奇怪的紫色背景。这就是我在 safari 或 iphone 中打开时使用图片而不是视频来避免的。关于@disinfor对显示器的评价,我将使用它。谢谢你的伙伴 elvientomedia.es

答: 暂无答案