我制作了一个 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/