Wixcode“静态”html iframe

问题描述 投票:1回答:1

如果这不是发布此信息的正确位置,请道歉。我完全不熟悉HTML等等,但是我想在我的网站上放一个按钮,它会记住被按下了多少次,每次有人按下它都会给你一个数字,例如下一个素数。有了足够的googleing,我设法将一些(我希望是非常糟糕的代码)放在一起,我认为可以做到这一点。这就是我所拥有的(抱歉,如果格式不正确,我在复制粘贴方面遇到了麻烦)。

<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,直到下一位访客出现并按下它。这样的事情可能吗?

html wixcode
1个回答
1
投票

你实际上并不需要iframe,你可以使用wixCode来做到这一点。 WixCode让你拥有一个数据库集合。您需要做的就是在每次点击时更新集合值。

假设您添加一个Events集合可以包含以下字段: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属性面板中)。


推荐问答