javascript - 如何为每个用户生成唯一 key ?

标签 javascript php jquery cross-domain setcookie

我制作了一个 jquery 弹出框,通过接受按钮向用户显示一些信息。当用户进入我的网站时,用户将看到该弹出框。

此时,我将wait保存在数据库表的'answer'列中,用户id。

如果用户单击接受按钮,我会在该用户 ID 的 'answer' 列中从 wait 更新为 yes 并且不显示弹出窗口今天该用户的框。

如果用户没有点击接受按钮并重新加载页面,再次显示弹出框,因为该用户 ID 的wait 状态没有改变,用户不能做任何事情。

我已经完成了那部分,一切都很好。

现在我想使用来自另一个网站的弹出窗口。

假设,我已经在 a.com 中创建了弹出框,并且我还想使用来自 b.com 或任何其他网站的弹出程序。

所以,我创建了一个脚本,可以像这样从任何其他网站访问 a.com 的弹出窗口,

<script src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/jquery.ui/jquery-ui-1.11.4.js"></script>
<link href="/css/jquery-ui-1.11.4.css" rel="stylesheet" />
<script>
$(document).ready(function(){
    var div = document.createElement("div");
    div.setAttribute("class","popup");
    document.body.appendChild(div);
    var id =  '1234';//I need to assign different value for each user
    var stype = "static";
    $(".popup").load("http://a.com/popup/popup_proce.php,{unique_id:id,script_type:stype}");
});
</script>

这个脚本可以显示弹出程序。但是,问题是,如果用户点击接受按钮,我需要检查用户是否已经点击了接受按钮。

所以,我需要知道每个用户的唯一 ID,以便将该记录保存到数据库中。

如果用户今天已经看到弹出窗口并单击接受按钮,我不想在今天为用户显示弹出窗口。

主要问题是我需要为上述脚本中的每个用户生成 cookie 作为 id,因为我需要检查该用户是否已经接受弹出窗口并需要保存该用户数据。

如果我为 id 使用随机值,我无法检查用户是否已经接受(仍然是 wait 状态)。因为当我重新加载(刷新)页面时,随机 ID 被更改并保存为新 ID。

因此,我无法检查之前 id 的 wait 状态,当我刷新页面时它总是保存为新 id。这就是我的问题。

所以,我认为,我需要为每个用户 ID 创建 cookie,而不是随机值。

当我尝试使用这样的 cookie 时,

document.cookie = "unique_id=123456";
var id = document.cookie;

我无法从 a.com 访问该 cookie 结果。我想我错了。我对跨域 cookie 的经验不多。

非常感谢任何建议。

最佳答案

至少您可以尝试使用以下代码来生成自定义 UUID:

function getNewID()
{
    var d = new Date().getTime();
    if (window.performance && typeof window.performance.now === "function")
    {
        d += performance.now();
        ; // use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c)
    {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
}

关于javascript - 如何为每个用户生成唯一 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309515/

相关文章:

javascript - 从 json 文件构造 bar 的工具提示值

javascript - 停止 ionic 交换发射,直到从存储加载值

php - 如何将两个 Laravel Eloquent 查询合并为一个查询(所以我访问数据库一次而不是两次)

javascript - Summernote 在 POST 中添加 "files"字段

Javascript 折叠延迟功能

javascript - 如何在 jQuery/JS 中创建具有多个值的 obj 并随机选择不重复的值

javascript - 自定义 HTML5 音频 API : Uncaught TypeError: undefined is not a function

javascript - jquery 编辑帖子不起作用

javascript - 圆周上的点

php - 精确匹配SQL