很抱歉,如果这不是张贴此内容的正确位置。我完全不熟悉HTML之类的东西,但是我想在我的网站上放一个按钮,该按钮可以记住它被按下了多少次,每当有人按下它时,它就会为您提供一个数字,例如下一个质数。通过足够多的Google搜索,我设法整理了一些(我认为确实是糟糕的代码),我认为可以做到这一点。这就是我所拥有的(很抱歉,如果格式不正确,我在复制粘贴时遇到了麻烦)。
<head>
<title>Space Clicker</title>
</head>
<body>
<script type="text/javascript">
function isPrime(_n)
{
var _isPrime=true;
var _sqrt=Math.sqrt(_n);
for(var _i=2;_i<=_sqrt;_i++)
if((_n%_i)==0) _isPrime=false;
return _isPrime;
}
function nextPrime(_s,_n)
{
while(_n>0)if(isPrime(_s++))_n--;
return --_s;
}
var clicks = 0;
function hello() {
clicks += 1;
v = nextPrime(2,clicks);
document.getElementById("clicks1").innerHTML = clicks ;
document.getElementById("v").innerHTML = v ;
};
</script>
<button type="button" onclick="hello()">Get your prime</button>
<p>How many primes have been claimed: <a id="clicks1">0</a></p>
<p>Your prime: <a id="v">0</a></p>
</body>
问题是,当我将此代码放在wixsite上的iframe中时,每次您访问该站点时似乎都重新加载了代码,因此它再次启动了计数器。我想说的是,该按钮已被按下5次,它将保持在5直到下一位访客出现并按下它为止。这样的事情有可能吗?
答案 0 :(得分:1)
您实际上并不需要iframe,可以使用wixCode进行操作。 WixCode让您拥有数据库集合。而您要做的就是每次点击都更新集合值。
比方说,您添加一个事件集合可以具有以下字段: id,eventName,clicksCount
在其中添加具有eventName ='someButtonClickEvent'和clicksCount = 0的一行 然后将以下代码添加到您的页面:
import wixData from 'wix-data';
$w.onReady(function () {});
export function button1_click(event) {
wixData.get("Events", "the_event_id")
.then( (results) => {
let item = results;
let toSave = {
"_id": "the_event_id",
"clicksCount": item.clicksCount++
};
wixData.update("Events", toSave)
})
}
现在,您需要添加button1_click作为按钮的onClick处理程序(在wixCode属性面板中)。