Link to home
Start Free TrialLog in
Avatar of lebron letchev
lebron letchev

asked on

Add “http://” or “https://” to a URL that contain only the relative url starting by “www” or not

Dear all,

I am using the script below for reading an url and automatically add to one the "Protocol" Http or Https.  The script below reading only https or http, because I cannot add another ELSE IF. This script is good for any url starting by "www", but many urls don´t starting by "www". So I have 2 problems. Could someone help me to improve this code for adding automatically the protocol and independetly if starts or not by 'www'?


<script>
function formatURL()
{
var url = document.getElementsByName("URL")[0];
var formattedURL = document.getElementsByName("formattedURL")[0];
url = url.value;
if(url.substr(0,3) === "www") // it is for an url starting by www but I need for urls starting or not by www
{
formattedURL.value = "http://"+url;

return;
}

// I need here other alternative to https:
}
formattedURL.value = url;
}
</script>

The results are reading by a form that "convert" the url without http or https with www or without www to real url to open it in another screen

Sorry by the inconveniences

Sincerely

Letchev
Avatar of Norie
Norie

What do you  mean you can't add another else if?

You don't actually have an else if in the posted code and you can have multiple else if statements
Avatar of lebron letchev

ASKER

Yes, Another else if does not works.

if(url.substr(0,3) === "www") // with our without www

{
formattedURL.value = "http://"+url;

return;
}

else

{
formattedURL.value = "https://"+url;

return;
}
what is the condition to use https ?
Looks like you're making this overly complex.

If you simple write links without a protocol, like //foo.com (rather than http: or https:) then likely your code will work.

Give this a try first.
ASKER CERTIFIED SOLUTION
Avatar of Sebastian Strittmatter
Sebastian Strittmatter
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It does not determine the correct protocol. Try with www.ebay.co.uk and www.elmundo.es
what is the condition to use https ?
No special condition. The user places the domain name without http or https. The script read the url and show the full url including the protocol
I have tested my regex an it works but if there is no condition for https and http then you have to decide. Or do you want to call the page via https an check if there is a redirect to https and show this result to the user?
Yes, redirect to http or https

For example, the user inputs: www.elmundo.es - the output would be http://www.elmundo.es
                                                     en.wikipedia.org/wiki/HTTPS - output = https://en.wikipedia.org/wiki/HTTPS
                                                      www.searchenginejournal.com - output = https://www.searchenginejournal.com

Thank you for your interest and patience.
ok you want to figure out if the site the user type redirect people to https right?
I don't think it's possible using only javascript you can detect redirect using php
Wow... another sleepless night
Dear all again

For reading the contents of a remote web page (Asp classic, PHP or Javascript) using  MSXML2.ServerXMLHTTP it is impossible open a remote page without place the Protocol http or https, but in general people does not writing the protocol qhen reading a remote web page through a web browser, but when we create a script for reading contents of a remote web page we need identify the procotol evey time.
you still want to do this with javascript?
Yes. Javascript would be the first alternative, but I will search on google to see if I find anything in PHP (probably) or in ASP CLASSIC (better). I need a script or partial code for redirecting the url without protocol through an input box for real page

for example: INPUT: WWW.ELMUNDO.ES
                       OUTPUT: HTTP://WWW.ELMUNDO.ES

                       INPUT: en.wikipedia.org/wiki/HTTPS
                       OUTPUT: https://en.wikipedia.org/wiki/HTTPS

I
Thank you.

I found the solution  by chance (literally)