Sunil Kumar
Sunil Kumar

Reputation: 632

Javascript: check if the url is changed or not?

My url format is like :

http://domain.in/home
http://domain.in/books/notes
http://domain.in/books/notes/copy

I've called a javascript function on window.load to check if the url has changed or not.

If the url has been changed then code is executed else it will return and checks again after 5 sec.

My code is :

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.");
}

The problem now is : when the url is like :

http://domain.in/book

Single level deep, then everything works fine. But when the url is like

http://domain.in/book/copy    or    http://domain.in/book/copy/notes

Then nothing works..... Any help to check 3 level deep url change in javascript every 5 sec ? :)

Hi sorry I forgot to tell that... I've .htaccess file which doesnt allow to navigate the page when any length url after the domain.in/ is written.... that means only single page remains open and not affected by the url change...

Upvotes: 0

Views: 2509

Answers (2)

Richard Dalton
Richard Dalton

Reputation: 35793

Sounds like a history plugin such as jQuery address would help you a lot.

It lets you handle the event when the URL is changed, so you can load in new content as required.

Upvotes: 0

Todd
Todd

Reputation: 1882

When the user changes the URL, the browser unloads the entire page they're currently on (including your javascript, hence it stops running) and then loads the next page. No javascript is able to run across page changes. You can't monitor a change in the URL like you're doing if they're navigating to another page.

The best way to catch a change in the URL is to add an onUnload event to the body object to fire your javascript when the browser unloads the page just before starting to load the new page the user has requested -- but I'm not sure that's going to help achieve your goal of tracking their recent page views (if that's what you're looking to do).

Upvotes: 1

Related Questions