我创建了一个jquery弹出框,通过接受按钮向用户显示一些信息。当用户进入我的网站时,用户将看到该弹出框。
目前,我使用用户ID将wait
保存在数据库表的'answer'
列中。
如果用户点击“接受”按钮,我会在wait
列中将yes
更新为'answer'
该用户ID,而不会在今天显示该用户的弹出框。
如果用户未单击“接受”按钮并重新加载页面,请再次显示弹出框,因为该用户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的经验。
我非常感谢任何建议。
答案 0 :(得分:1)
至少您可以尝试使用以下代码生成自定义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;
}