带body onload的Javascript奇怪循环
我的服务器上有这个文件:(Index.html)带body onload的Javascript奇怪循环,javascript,Javascript,我的服务器上有这个文件:(Index.html) 然后Script.js: function generateUUID() { var d = new Date().getTime(); var uuid = 'xxx-xxx-4xx-yxxx-xxxxyyyyxxxx'.replace(/[xy]/g, function(c) { var r = (d + Math.random()*16)%16 | 0; d = Math.floor(d/1
然后Script.js:
function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxx-xxx-4xx-yxxx-xxxxyyyyxxxx'.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;
};
window.onload=doit;
function doit() {
var uuidme;
uuidme = generateUUID();
window.location.href = "/test?uuid=" + uuidme;
}
get Variable变得疯狂,它从未停止更改代码,甚至与我想要的代码不符。在重定向之前,请检查url,看看您是否已经在正确的位置设置了uuid。您可以通过使用indexOf
window.location.href.indexOf('uuid=')=-1扫描变量uuid
的url来完成此操作:
function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxx-xxx-4xx-yxxx-xxxxyyyyxxxx'.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;
};
window.onload=doit;
function doit() {
// make sure we dont find uuid set in the url already
if(window.location.href.indexOf('uuid=') == -1) {
var uuidme;
uuidme = generateUUID();
window.location.href = "/test?uuid=" + uuidme;
}
}
那么,分配给window.location.href
将加载该页面。如果这是代码所在的同一页,那么它将不断刷新。这不是你想要的吗?那么您想要什么?如果脚本在/test加载,那么它每次加载时都会运行,即使是在加载查询字符串时也是如此。@LeFex有什么办法可以解决这个问题吗?我不认为一开始就这样做有什么意义。如果您确实需要此功能,则必须检查查询字符串中是否有id,如果有id,则不运行代码,或者将其保存在cookie中,并将其用作条件。