Wixcode“静态” html iframe

时间:2019-03-03 18:02:27

标签: html wixcode

很抱歉,如果这不是张贴此内容的正确位置。我完全不熟悉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直到下一位访客出现并按下它为止。这样的事情有可能吗?

1 个答案:

答案 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属性面板中)。