Is it possible to load a Javascript program from an html page and then make the Javascript load another html page instead of the page the loaded the program?
5 Answers
Yes. In the javascript code:
window.location.href = "http://new.website.com/that/you/want_to_go_to.html";
4 Comments
Blaine
Would be better to use the functions (supported by all browsers) created for this purpose rather than using the assignment trick. location.assign and location.replace functions.
jkr
@Blaine what functions, can you point to the code?
Blaine
@jkr As I said, location.assign and location.replace. They obviously take one string as parameter. If you can't figure out how to call a function given function name and parameter, I don't think you're cut out for coding. w3schools.com/jsref/met_loc_assign.asp and w3schools.com/jsref/met_loc_replace.asp.
Is it possible (work only online and load only your page or file): https://w3schools.com/xml/xml_http.asp Try my code:
function load_page(){
qr=new XMLHttpRequest();
qr.open('get','YOUR_file_or_page.htm');
qr.send();
qr.onload=function(){YOUR_div_id.innerHTML=qr.responseText}
};load_page();
qr.onreadystatechange instead qr.onload also use.
1 Comment
Rafe
This is the answer to question, not the href change that will redirect to another page. Instead it will get raw source code of the requested file as string.
You can use the following code :
<!DOCTYPE html>
<html>
<body onLoad="triggerJS();">
<script>
function triggerJS(){
location.replace("http://www.google.com");
/*
location.assign("New_WebSite_Url");
//Use assign() instead of replace if you want to have the first page in the history (i.e if you want the user to be able to navigate back when New_WebSite_Url is loaded)
*/
}
</script>
</body>
</html>
Comments
Another approach, besides window.location.replace() or window.location.assign() or window.location.href or window.open(), is to trigger form submission:
var form = document.createElement("form");
form.method = "POST";
form.action = "//test.local/login.php";
form.target = "_blank";
form.style.display = 'none';
var input1 = document.createElement("input");
input1.value = "123";
input1.name = "param1";
form.appendChild(input1);
var input2 = document.createElement("input");
input2.value = "abc";
input2.name = "param2";
form.appendChild(input2);
document.body.appendChild(form);
form.submit();
You could change the form method to GET: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#method
<script>tag 3) That JS file changes the location of the browser to another page OR 3) That JS file loads a partial HTML page and uses it to update part of the current page.