Javascript:检查网址是否更改?

时间:2011-11-08 10:27:03

标签: javascript

我的网址格式如下:

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/被写入后,任何长度网址都不允许导航页面....这意味着只有单页保持打开状态并且不受网址变更的影响...

2 个答案:

答案 0 :(得分:1)

当用户更改URL时,浏览器会卸载他们当前所在的整个页面(包括您的javascript,因此它会停止运行),然后加载下一页。没有javascript能够跨页面更改运行。如果他们导航到另一个页面,您无法监控URL中的更改。

捕获URL更改的最佳方法是向body对象添加onUnload事件,以便在浏览器在开始加载用户请求的新页面之前卸载页面时触发javascript - - 但我不确定这有助于实现跟踪他们最近的网页浏览量的目标(如果这是你想要做的事情)。

答案 1 :(得分:0)

听起来像jQuery address之类的历史插件会对你有很多帮助。

它允许您在更改URL时处理事件,因此您可以根据需要加载新内容。

相关问题