Javascript 如何停止加载特定的HTML元素?(需要基于浏览设备加载视频)

Javascript 如何停止加载特定的HTML元素?(需要基于浏览设备加载视频),javascript,html,html5-video,Javascript,Html,Html5 Video,我需要根据屏幕大小或设备(移动和桌面)加载视频 我有同样适用于移动和桌面的视频(我正在使用Jinja模板) 在当前场景中,两者都被加载,这降低了页面加载速度 请提出克服这一问题的方法 我试图使用window.innerWidth加载它们 我们能在这里找到更有效的解决方案吗 html文件 ` ` 如前所述,如果您只是使用普通的旧HTML,您可以根据屏幕大小添加CSS规则 javascript中更具体的解决方案是创建一个.js文件,根据用户使用的浏览器呈现特定页面。在你的app.get()方法中,

我需要根据屏幕大小或设备(移动和桌面)加载视频

我有同样适用于移动和桌面的视频(我正在使用Jinja模板)

在当前场景中,两者都被加载,这降低了页面加载速度

请提出克服这一问题的方法 我试图使用window.innerWidth加载它们 我们能在这里找到更有效的解决方案吗

html文件

`


`

如前所述,如果您只是使用普通的旧HTML,您可以根据屏幕大小添加CSS规则


javascript中更具体的解决方案是创建一个.js文件,根据用户使用的浏览器呈现特定页面。在你的app.get()方法中,你可以添加一个可以复制的回调,一个包含几种其他语言回调的网站。

如上所述,如果你只是使用普通的旧HTML,你可以根据屏幕大小添加CSS规则


javascript中更具体的解决方案是创建一个.js文件,根据用户使用的浏览器呈现特定页面。在app.get()方法中,您可以添加一个可以从中复制的回调,该网站包括对几种其他语言的回调。

好的,我在这里找到了将javascript转换为HTML文件的解决方案

我所做的只是使用javascript中使用的Jinja变量,并在默认情况下将src属性设置为空

它将根据移动设备或桌面设备的类型有条件地加载视频

注意:确保它应该在HTML代码下面,因为类及其元素应该首先加载,否则它将抛出错误

(function () {
const bgv = document.querySelector(".video-bg-desktop");
const bgvMobile = document.querySelector(".video-bg-mobile");

if (window.innerWidth > 850) {
  const children = bgv.children[0].children;

  for (let i = 0; i < children.length; ++i) {
    if (children[i].type === "video/mp4") {
      children[i].src = "{{ video_mp4 }}";
    }
    if (children[i].type === "video/webm") {
      children[i].src = "{{ video_webm }}";
    }
  }
} else {
  const children = bgvMobile.children[0].children;

  for (let i = 0; i < children.length; ++i) {
    if (children[i].type === "video/mp4") {
      children[i].src = "{{ video_mp4_mobile }}";
    }
    if (children[i].type === "video/webm") {
      children[i].src = "{{ video_webm_mobile }}";
    }
  }
}
})();
(函数(){
const bgv=document.querySelector(“.video bg desktop”);
const bgvMobile=document.querySelector(“.video bg mobile”);
如果(window.innerWidth>850){
const children=bgv.children[0]。children;
for(设i=0;i
好吧,我在这里找到了将javascript转换成HTML文件的解决方案

我所做的只是使用javascript中使用的Jinja变量,并在默认情况下将src属性设置为空

它将根据移动设备或桌面设备的类型有条件地加载视频

注意:确保它应该在HTML代码下面,因为类及其元素应该首先加载,否则它将抛出错误

(function () {
const bgv = document.querySelector(".video-bg-desktop");
const bgvMobile = document.querySelector(".video-bg-mobile");

if (window.innerWidth > 850) {
  const children = bgv.children[0].children;

  for (let i = 0; i < children.length; ++i) {
    if (children[i].type === "video/mp4") {
      children[i].src = "{{ video_mp4 }}";
    }
    if (children[i].type === "video/webm") {
      children[i].src = "{{ video_webm }}";
    }
  }
} else {
  const children = bgvMobile.children[0].children;

  for (let i = 0; i < children.length; ++i) {
    if (children[i].type === "video/mp4") {
      children[i].src = "{{ video_mp4_mobile }}";
    }
    if (children[i].type === "video/webm") {
      children[i].src = "{{ video_webm_mobile }}";
    }
  }
}
})();
(函数(){
const bgv=document.querySelector(“.video bg desktop”);
const bgvMobile=document.querySelector(“.video bg mobile”);
如果(window.innerWidth>850){
const children=bgv.children[0]。children;
for(设i=0;i
您是否尝试过
CSS媒体查询
?@HansakaSandaruwan CSS只会在加载后生效,确切地说,我不想加载两个,然后删除您是否尝试过
CSS媒体查询
?@HansakaSandaruwan CSS只会在加载后生效,确切地说,我不想同时加载这两种设备,然后再将其删除。好吧,我的网站对所有屏幕大小的设备都有响应。我有两个单独的视频,用于移动和桌面,我需要根据设备偏好加载它们。我只关心这个视频元素,它现在加载两个视频,无论您将站点加载到何处,最好在get方法回调中添加一个带有if语句的javascript页面,该语句检查哪种浏览器正在发送请求。如果我得到它,我应该使用条件来选择它是移动的还是桌面的,但需要下一个逻辑,我们还可以使用条件(window.innerWidth>mobile\u width)但是接下来呢?如果我们保持HTML不变,我应该删除class或scr属性吗?简短的编码答案将是显而易见的,这一切取决于您使用的语言。在带有express和ejs的javascript中,您需要express模块并将其命名(例如app)和do:app.get(“链接到视频页面”,函数(req,res){req.render(“包含视频的页面”)})然后,理想情况下,该页面将位于ejs中,这将允许您添加js,如果您的htmlejs是ypur friend,可以将html和js结合在一起,那么我的站点将响应所有屏幕大小的设备。我有两个单独的视频,用于移动和桌面,我需要根据设备偏好加载它们。我只关心这个视频元素,它现在加载两个视频,无论您将站点加载到何处,最好在get方法回调中添加一个带有if语句的javascript页面,该语句检查哪种浏览器正在发送请求。如果我得到它,我应该使用条件来选择它是移动的还是桌面的,但需要下一个逻辑,我们还可以使用条件(window.innerWidth>mobile\u width)但是接下来呢?如果我们保持HTML不变,我应该删除class或scr属性吗?简短的编码答案将是显而易见的,这一切取决于您使用的语言。在带有express和ejs的javascript中,您需要express模块并将其命名为(fo