我的网址格式如下:
http://domain.in/home
http://domain.in/books/notes
http://domain.in/books/notes/copy
我在window.load上调用了一个javascript函数来检查url是否已更改。
如果网址已被更改,则执行代码,否则它将返回并在5秒后再次检查。
我的代码是:
window.onload = function(){
setInterval(function(){
page_open();
}, 5000);
};
function page_open(){
var pages=unescape(location.href);
pages=pages.substr( pages.lastIndexOf("studysquare.in/") + 15 );
// gives book if url is http://studysquare.in/book
//alert("pages"+pages+"\n\n recent"+recent);
if (pages==recent) { return; }
recent=pages;
alert("Reached down now the code will execute.");
}
现在的问题是:当网址如下:
http://domain.in/book
单层深,然后一切正常。但当网址像
时http://domain.in/book/copy or http://domain.in/book/copy/notes
然后什么都行不通..... 是否有任何帮助,每5秒检查一次javascript中的3级深层网址更改? :)
对不起,我忘了告诉那个...我的.htaccess文件,当domain.in/
被写入后,任何长度网址都不允许导航页面....这意味着只有单页保持打开状态并且不受网址变更的影响...
答案 0 :(得分:1)
当用户更改URL时,浏览器会卸载他们当前所在的整个页面(包括您的javascript,因此它会停止运行),然后加载下一页。没有javascript能够跨页面更改运行。如果他们导航到另一个页面,您无法监控URL中的更改。
捕获URL更改的最佳方法是向body对象添加onUnload
事件,以便在浏览器在开始加载用户请求的新页面之前卸载页面时触发javascript - - 但我不确定这有助于实现跟踪他们最近的网页浏览量的目标(如果这是你想要做的事情)。
答案 1 :(得分:0)
听起来像jQuery address之类的历史插件会对你有很多帮助。
它允许您在更改URL时处理事件,因此您可以根据需要加载新内容。