如何使用javascript计算点击次数?
我可以用javascript计算链接的点击次数吗?您可以计算单个请求中的点击次数(例如,页面加载后按钮被点击的次数)。您不能计算请求之间的点击次数(在加载另一个页面或重新加载当前页面之后) 例如:如何使用javascript计算点击次数?,javascript,Javascript,我可以用javascript计算链接的点击次数吗?您可以计算单个请求中的点击次数(例如,页面加载后按钮被点击的次数)。您不能计算请求之间的点击次数(在加载另一个页面或重新加载当前页面之后) 例如: <script type="text/javascript">var clicks = 0;</script> <input value="Click" type="button" onclick="clicks++"> 当然,在标记中添加一个onclick事件处
<script type="text/javascript">var clicks = 0;</script>
<input value="Click" type="button" onclick="clicks++">
当然,在
标记中添加一个onclick事件处理程序函数,用于检索、递增和存储计数器变量。您可以检索并将其存储在隐藏字段中。但是,一旦离开页面,您将丢失信息。您可以使用此脚本计算页面链接上的所有单击次数:
// This variable contains the number of clicks corresponding to the linked URLs
var clickCount = {}
// List of all a tags
, aList = document.getElementsByTagName('a')
// Function called every time a link is clicked on
, clickCounter = function()
{
clickCount[this.href] = clickCount[this.href] ? clickCount[this.href]+1 : 1;
}
;
// The event is attached to every link having a "href" attribute
for (var i=0 ; i<aList.length, a=aList[i] ; i++)
{
if (this.href)
{
a.onclick = clickCounter;
}
}
// This example uses jQuery to send the data to a PHP script
// A POST request is sent just before the window is closed
onbeforeunload = function()
{
$.post('/tracking.php', clickCount);
}
//此变量包含链接URL对应的单击次数
var clickCount={}
//所有a标签的列表
,aList=document.getElementsByTagName('a')
//每次单击链接时调用的函数
,单击计数器=函数()
{
clickCount[this.href]=clickCount[this.href]?clickCount[this.href]+1:1;
}
;
//事件附加到每个具有“href”属性的链接
对于(var i=0;i您应该直接从web服务器日志或从解析?id=1234
以加载实际内容的代码中计算服务器端的这些请求
假设您有某种方式(登录名、cookie、IP地址)来判断,则不要计算来自您提供ID的页面作者的请求--从您的代码而不是服务器日志来看,这一部分会更简单。您可能试图查看用户在页面上单击了多少链接,以查看他们访问了哪些链接。这是一种不可靠的策略,因为用户可以通过多种不同的方式访问链接,而无需单击链接(关联菜单、拖动到新选项卡、复制链接位置等)
如果您想知道他们在当前页面中单击了多少个链接,答案是零,因为如果他们单击某个链接,他们应该转到另一个页面。如果您使用侦听器阻止导航,则同一个侦听器也可以计算单击次数。
<script type="text/javascript">
var clicks = 0;
function linkClick() {
document.getElementById('clicked').value = ++clicks;
}
document.write('<a href="#" onclick="linkClick()">Click Me!</a>');
var=0;
函数linkClick(){
document.getElementById('clicked')。value=++单击;
}
文件。写(“”);
您已经点击了链接时间。这是一个简单的点击计数器,点击之间的限制因子为200ms
。在我的示例中,在随后的3次点击后,将发生以下情况:
var onClick=(函数(){
变量计数=0,定时器;
返回函数(){
计数++;
清除超时(计时器);
timer=setTimeout(函数(){count=0},200);
//点击3次后做任何事情
如果(计数>2)
document.body.classList.toggle('mode');
}
})();
document.body.addEventListener(“单击”,onClick);
html,正文{高度:100%;}
正文{
字体:20px Arial;
文本对齐:居中;
填充:20px;
背景:EFDCE8;
过渡:.3s;
-moz用户选择:无;
-webkit用户选择:无;
}
body.mode{background:lightgreen;}
单击anwhere 3次
我创建了一个带有本地存储的点击计数器,因此它可以存储点击计数
<html>
<body>
<a href="#" onclick="clickCounter()">Click Counter</a>
<a href="#" onclick="resetCounter()">Reset Counter</a>
<br>
<p id="result"></p>
<script>
function clickCounter() {
var count = localStorage.clickcount = Number(localStorage.clickcount)+1;
if (isNaN(count) === true) {
count = localStorage.clickcount = 1;
document.getElementById("result").innerHTML = count;
} else {
document.getElementById("result").innerHTML = count;
}
}
function resetCounter() {
var reset = localStorage.clickcount = 0;
document.getElementById("result").innerHTML = reset;
}
</script>
</body>
</html>
函数clickCounter(){
var count=localStorage.clickcount=Number(localStorage.clickcount)+1;
如果(isNaN(计数)==真){
计数=本地存储。单击计数=1;
document.getElementById(“结果”).innerHTML=count;
}否则{
document.getElementById(“结果”).innerHTML=count;
}
}
函数resetCounter(){
var reset=localStorage.clickcount=0;
document.getElementById(“结果”).innerHTML=reset;
}
您可以使用以下功能:
const btn=document.querySelector('.btn');
btn.onclick=计数器;
const clicks=document.querySelector('.clicks');
clicks.id=document.querySelector('clicks');
var a=0;
函数计数器(){
a+=1;
clicks.innerHTML=a;
}
点击
点击:0
你的意思是如何计算点击次数?你的意思是检查双击或三次点击,或者只是计算点击次数?你必须再解释一下。上下文是什么?“有人能发布一些关于这方面的资源吗?”当然:我在谷歌上搜索了这个,但我找不到。这就是我提到stacksoverflow的原因。请发表有用的评论。提问者可以根据上下文使用cookie来完成页面之间的计数。但是如果我使用cookie来保存变量,它会在下次访问页面时保留吗?是的,您可以将数据存储在一个cookie。@user733618肯定是。在这种情况下,检索和存储过程将使用cookie,而不是隐藏标签!还有一个问题,如果链接不是链接怎么办。比如,如果我有文本“blablabla.com/”怎么办但它没有链接到任何东西,换句话说,没有href标记,我还能计算它的点击次数吗?如果你没有href属性,它将无法点击。因此我认为它不会触发onclick事件。你可以使用按钮来代替:)您需要在DOM中查找A,因为单击可能是A的子项。此外,最好在文档中查找。链接作为锚也是一个元素,但不是链接。感谢您的document.links想法!如果我们测试href属性,使用getElementsByTagName也可以实现这一点;但是锚链接并不是什么我担心的是,点击它们也可能有一些信息价值。
<html>
<body>
<a href="#" onclick="clickCounter()">Click Counter</a>
<a href="#" onclick="resetCounter()">Reset Counter</a>
<br>
<p id="result"></p>
<script>
function clickCounter() {
var count = localStorage.clickcount = Number(localStorage.clickcount)+1;
if (isNaN(count) === true) {
count = localStorage.clickcount = 1;
document.getElementById("result").innerHTML = count;
} else {
document.getElementById("result").innerHTML = count;
}
}
function resetCounter() {
var reset = localStorage.clickcount = 0;
document.getElementById("result").innerHTML = reset;
}
</script>
</body>
</html>