我编写了一个JS代码,用于选择所有<td>
元素并刷新页面,直到元素更改为数字。
不幸的是,在刷新页面后代码结束,所以我想构建一个chrome扩展,但它太棘手了!这是行不通的!你能帮我解决一下这个问题吗?当我按下激活该功能的按钮时,没有任何反应..(控制台检查)
我只想实现一个脚本,该脚本将在特定选项卡(而不是URL)的后台运行。检查一些选项后,扩展名听起来很酷。也许有更好的解决方案?
的manifest.json
"manifest_version": 2,
"name": "Grade Refresher!",
"description": "This extension will refresh the page until the grade will shown!",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
]
popup.html
<!doctype html>
<html>
<head>
<title>Grade Refhresher</title>
<script src="refresh.js"></script>
</head>
<body>
<h1>Grade Refresher</h1>
<button id="activate">Check this page now!</button>
</body>
</html>
<强烈> refresh.js
document.addEventListener('DOMContentLoaded', function() {
var checkPageButton = document.getElementById('activate');
checkPageButton.addEventListener('click', function() {
chrome.tabs.getSelected(null, function(tab) {
//my JS code starts here
console.log("START");
//select all td elements
var table_data = document.querySelectorAll("td");
var flag = false;
//td elements 9,19,29.. all with the grades data
for(var i=9; i<table_data.length && !flag; i+=10){
console.log('checking '+ table_data[i])
if(parseInt(table_data[i].innerText) > 0 && parseInt(table_data[i].innerText) < 100){
window.open("https://www.youtube.com/watch?v=Jmd4OLzhQw0");
flag = true;
break;
} else {
setInterval(function(){
console.log("RELOAD PAGE");
refresh();
}, 5000);
}
}
function refresh() {
window.location.reload();
}
});
});
});
非常感谢你! :)