下面是我的代码,但页面加载不断,我只想加载一次
window.onload = function () {
window.location.reload();
}

答案 0 :(得分:4)
有几种方法可以解决这个问题,所有这些方法都要求跨页面加载保存状态。您可以使用cookies,localStorage,位置对象本身等。
这是一种检查是否有“重新加载”哈希字符串的方法,如果没有,则添加它并重新加载页面。然后,当它再次尝试执行时,哈希将在那里并且不会重新加载:
if (location.hash.indexOf('reloaded') === -1) {
location.hash += 'reloaded';
location.reload();
}
答案 1 :(得分:3)
$(document).ready(function(){
if(document.URL.indexOf("#")==-1){ //Check if the current URL contains '#'
url = document.URL+"#"; // use "#". Add hash to URL
location = "#";
location.reload(true); //Reload the page
}
});
由于if条件页面只会重新加载一次。
实现这一目标的另一种方法是:
(function()
{
if( window.localStorage )
{
if( !localStorage.getItem('firstLoad') )
{
localStorage['firstLoad'] = true;
window.location.reload();
}
else
localStorage.removeItem('firstLoad');
}
})();
答案 2 :(得分:1)
window.onload = function ()
{
// for getting params value
function parse(val)
{
var result = "not found";
tmp = [];
location.search
.substr(1)
.split("&")
.forEach(function (item) {
tmp = item.split("=");
if (tmp[0] === val) result = decodeURIComponent(tmp[1]);
});
return result;
}
if(parse("load")!="once")
{
//sending parameter so next time it won't reload..
window.location.href += "?load=once";
window.location.reload();
}
}
答案 3 :(得分:0)
访问页面的性质,它只会加载一次。您可以更改代码以证明这一事实:
window.onload = function () {
alert("Loaded");
}
但是,我建议检测页面加载的vapor.js路由,即省略此onload调用,因为onload函数中的代码行在页面加载后运行。我想你或者不知道你的目标是什么,或者你有一个完全不同的问题,你试图以一种没有意义的方式解决
答案 4 :(得分:0)
你构建了一个循环,
您需要了解的重要事实是浏览器从上到下贯穿您的代码,当您重新加载页面时,整个过程会重复。
因此,每次重新加载时,只要窗口对象完全加载,window.onload事件监听器就会被注册并调用附加到它的函数。
没有任何机制告诉浏览器停止。
如果你想在加载DOM后运行你的Javascript代码,并且你正在寻找一个独立于浏览器的解决方案,我会推荐jQuery及其$( document ).ready()函数。
将jQuery包含在您的网页中
$( document ).ready(function(){
//Code inside this function runs after your document is loaded
})