Skip to content Skip to sidebar Skip to footer

How Can I Execute A Script After Calling Window.location.href?

I have a script that redirects the user to another page. I want to load some content into a div on the new page after the new page has fully loaded. How can I do this. The followin

Solution 1:

Redirect to the new page, but append a hash signal to the URL.

functiongoToPage() {
    window.location.href = 'http://www.mypage.com/info#load-stuff;
}

Then on load of the target page, evaluate the URL checking for that hash signal.

functionpageLoad() {
    if (window.location.hash === "#load-stuff") {
        $('.my_class').load('my/url/path/with/content/to/load');
    }
}

If your application is using jQuery it'd look something like:

$(function () {
    if (window.location.hash === "#load-stuff") {
        $('.my_class').load('my/url/path/with/content/to/load');
    }
});

That's the rough idea at least.

Solution 2:

As pointed out in the other answers, you won't be able to perform any script instructions from your original site. Instead of using PHP to create the content statically, you could also use HTML fragments as arguments, e.g. like this:


// in the original page:functiongoToPage() {
    window.location.href = 'http://www.mypage.com/info#my/url/path/with/content/to/load';
}

// in http://www.mypage.com/info:
$( document ).ready(function () {
    if(window.location.hash)
        $('.my_class').load(window.location.hash.substring(1));
}

Solution 3:

You should just run

$('.my_class').load('my/url/path/with/content/to/load');

on this page: http://www.mypage.com/info.

When you do window.location.href = 'http://www.mypage.com/info'; you're redirecting to another page. Nothing after that line will happen. You have to instead run the code after that line on the page that's loaded.

Solution 4:

An easy way to pass data to your page you are redirecting to would be to set some url parameters.

For example:

window.location.href - "http://youpage.com/?key=value"

When that page loads you could have a:

$(document).ready(function(){

    var my_param = getUrlParameter('key');
    if(my_param == "value"){
//do your stuff here
}

});


var getUrlParameter = functiongetUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
};

Solution 5:

window.location = '#/MyPage';
setTimeout(function() {
   //MyCode To Run After PageLoad
});

Post a Comment for "How Can I Execute A Script After Calling Window.location.href?"