当我手动粘贴到浏览器的控制台中时,我的JavaScript代码可以正常工作。但是,每当我将代码作为扩展加载时,错误报告就会说我的“ ratingPair”变量未定义。如果我尝试先声明我的“ views”变量,那么它也将是未定义的。
我已经尝试了Firefox和Chrome浏览器,不同的计算机以及禁用其他扩展程序。
ratingRatio.js
let ratingPair = document.querySelectorAll("yt-formatted-string.ytd-toggle-button-renderer");
// total = likes + dislikes
let total = Number(ratingPair[0].ariaLabel.replace(/\D/g,'')) +
Number(ratingPair[1].ariaLabel.replace(/\D/g,''));
let views = Number(document.querySelector(".view-count").innerHTML.replace(/\D/g,''));
if (total)
document.querySelector(".view-count").innerHTML += " 1/" + Math.round(views/total);
else
document.querySelector(".view-count").innerHTML += " NA";
manifest.json
{
"description": "Displays the ratings/views ratio on Youtube; ratingRatio = (likes + dislikes)/views",
"manifest_version": 2,
"name": "ratingRatio",
"version": "1.0",
"content_scripts": [
{
"matches": ["https://www.youtube.com/watch*"],
"js": ["ratingRatio.js"]
}
]
}
该比例应附加在视图旁边。例如,如果视频的观看次数为20,395次,喜欢次数为475次,喜欢次数为10次,那么我们可以通过以下方式计算比率:
(475 + 10)/ 20,395≈1/42
因此,在视频下方应显示“ 20,395次观看1/42”