首页 > 解决方案 > 通过js自动选择最高质量?

问题描述

我想写一个js代码,让这个网站上的视频质量自动选择最高质量。但是我没有学过js,我找到了一些相关的代码来改变它。

例如:https://www.acfun.cn/v/ac17342395(普通视频)或https://live.acfun.cn/live/376​​62640(https://live.acfun.cn) (直播)视频)</p>

// @match ://www.acfun.cn/v/ (普通视频) // @match ://live.acfun.cn/live/ (直播视频)</p>

 model.acfun = {

elements: {

  selectList: {
    get: () => document.querySelector('.quality-panel>li'),
    has: element => ('data-index="0"').test(location.pathname) || element
  }

},

click: element => element.className == 'selected' ? element : element.click(),

handler: model => ('data-index="0"').test(location.pathname) ?
  setTimeout(() => model.click(model.elements.selectList.get()), 1000) :
  true

}

这是此视频网站上的相关内容。 我想我想在上面自动选择 data-index="0" (用于常规视频)和 data-index="3" (用于实时视频)。无论如何,自动选择最高的。我该如何改变它?谢谢你。在此处输入图像描述 在此处输入图像描述

标签: javascript

解决方案


您可以使用以下代码选择不需要登录的视频,它模拟列表中不需要登录的第一个项目的“点击”动作(意思是,不包含“go2login”类属性)

// Get all li options (quality options)  
let lis = document.querySelectorAll(".quality-panel li");
    
for(let i=0; i<lis.length; i++){
  // iterate over the lis, choose the first one that doesn't require login
  let elm = lis[i];
  if(elm.className.indexOf("go2login") == -1){
    elm.click();
    break;
  }
}

或者这个,如果你不介意登录,只选择列表中的第一个元素(由于视频质量列表是从高到低排序的,第一个是最高质量)

document.querySelectorAll(".quality-panel li:nth-child(1)").click();

推荐阅读