javascript - 通过js自动选择最高质量?
问题描述
我想写一个js代码,让这个网站上的视频质量自动选择最高质量。但是我没有学过js,我找到了一些相关的代码来改变它。
例如:https://www.acfun.cn/v/ac17342395(普通视频)或https://live.acfun.cn/live/37662640(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" (用于实时视频)。无论如何,自动选择最高的。我该如何改变它?谢谢你。
解决方案
您可以使用以下代码选择不需要登录的视频,它模拟列表中不需要登录的第一个项目的“点击”动作(意思是,不包含“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();
推荐阅读
- php - 当我对我创建的表单执行 XSS 攻击时,什么也没发生?
- mysql - view 在向 view 添加额外的列时是否会占用磁盘/文件的空间,这在 table 中不存在?
- nlp - 无法从“变压器”导入“AutoModelForSequenceClassification”
- oracle - 使用加密凭据的 Powershell Oracle DB 连接
- reactjs - React,避免在一个条件下渲染两次
- azure-devops - 如何更改 Azure Devops 的行为以将使用 DataTestMethod 属性运行的测试报告为单独的测试
- npm - 执行 npm install 时 npm ERR 代码 EPERM syscall unlink
- firebase - 检索数组的数据
- firebase - 代码文件有问题。我不小心删除了它并希望它回来
- django - 如何在 html 模板中显示 djago 验证错误消息?