基本上我的脚本根据网页信息创建一个超链接。当用户单击该超链接时,它会将他们发送到图像页面。现在,我想要统计该超链接的点击次数,并将总次数(递增)显示到另一个页面。我尝试过的是下面的代码,它应该计算点击次数,但我收到错误:
eslint:无返回分配 - Return 语句不应包含 作业。
另外,如果有人可以帮我解决这个问题,是否也可以在另一个页面中显示该计数?如果我刷新该页面,计数不会重置?
我将发布部分脚本供您审阅。预先非常感谢您。祝你有美好的一天!
//This will create that link into a page
let link = document.createElement("a");
var linkText = document.createTextNode(images2[j].name);
link.appendChild(linkText);
link.title = images2[j].name;
link.href = images2[j].image_src;
link.target = '_blank';
document.querySelector('[class^="testui_tabs-content"]').prepend(link);
let eventListenerFunction = (e) => {log('A link was clicked'); }
document.querySelectorAll('[class^="testui_tabs-content"]').forEach(linkText => {
link.addEventListener("click", eventListenerFunction );
});
//This will log user clicks to a Slack Channel
function log(msg){
const ticketurl = window.location.href;
const url = 'https://hooks.slack.com/workflows/Test';
const headers = {'Content-Type': 'application/x-www-form-urlencoded'};
let data = `${msg}, ${ticketurl}, ${new Date().toISOString()}, v${GM_info.script.version}`;
data = {'Content': data};
request('POST', url, '', headers, data);
};
//Counts the click on the hyperlink with error
var count = (function () {
var counter = 0;
return function () {return counter +=1;}
})();
function displaycount(){
document.getElementById("log").innerHTML = count();
})();
首先,解决您的
eslint
错误 -
如你所见
return counter +=1
。这意味着您将 counter
指定为 counter + 1
然后返回该值。如果您不希望出现此错误,您只需不分配即可:
counter += 1;
return counter;
现在您想将值保存到另一个页面吗?有很多方法可以跨页面和刷新后保存数据。了解
localStorage