我有这样的代码:阿贾克斯只加载一次
window.onload= function() {
window.scrollTo(0, 0.9);
if (navigator.standalone) return;
for (var i= document.links.length; i-->0;) {
document.links[i].onclick= function() {
var req= new XMLHttpRequest();
req.onreadystatechange= function() {
if (this.readyState!==4) return;
document.body.innerHTML= this.responseText;
};
req.open('GET', this.href, true);
req.send();
return false;
};
}
};
它基本上获取点击和HREF到当前的身体负荷的一个的href。现在问题是它只能工作一次。一旦内容发生变化,只要我点击另一个链接(在新的页面上),它就会重定向并且URL会发生变化。然后,阿贾克斯再次工作,因为我“真正”改变页面并重置整个事情。
我有点迷失在这里。我怎样才能重置我的功能永远工作? 谢谢,
克里斯托弗
编辑: 好了,所以我想是这样的:
function ajax(){
if (navigator.standalone) return;
for (var i= document.links.length; i-->0;) {
document.links[i].onclick= function() {
var req= new XMLHttpRequest();
req.onreadystatechange= function() {
if (this.readyState!==4) return;
document.body.innerHTML= this.responseText;
};
req.open('GET', this.href, true);
req.send();
ajax();
return false;
};}
}
window.onload= function() {
window.scrollTo(0, 0.9);
ajax();
};
但无济于事......调用当它完成了ajax()函数是不够明显。任何人都可以帮助我多一点:s。这不是我的专业领域:)。
我试过,但它不工作,你可以看看我的编辑,告诉我是什么错误? :s – cmplieger 2011-06-14 22:03:06
在更新主体“innerHTML”之后,在“readystatechange”处理程序内添加对“ajax()”的调用,并查看是否有帮助。 – Pointy 2011-06-14 22:06:38
哦,还有,其他调用“ajax()”发送请求后,你可以摆脱这一点。 – Pointy 2011-06-14 22:07:14