Add code in your website
<script type="text/javascript" src="https://cdn.rawgit.com/gnh1201/1b4182778df5358bf879582095530a41/raw/ff2130e86282bf5fd28768fcab30571633690ff6/alwayshttps.js"></script>
or install by bower
bower install alwayshttps
/** | |
* @file alwayshttps.js | |
* @license http://www.opensource.org/licenses/mit-license.html MIT License | |
* @author Go Namhyeon <[email protected]> | |
* @date: 2018-02-17 | |
*/ | |
function alwayshttps_replace_from(uri) { | |
return uri.replace("http://", "https://", uri); | |
} | |
function alwayshttps_decision(a, b) { | |
return ('https:' == window.location.protocol) ? a : b; | |
} | |
function alwayshttps_redirect() { | |
if(!alwayshttps_decision(true, false)) { | |
location.href = 'https:' + window.location.href.substring(window.location.protocol.length); | |
} | |
} | |
function alwayshttps_dom() { | |
var secureTagNames = [ | |
'meta', 'link', 'script', 'embed', 'iframe', | |
'img', 'input', 'source', 'audio', 'video', | |
'track', 'a', 'form' | |
]; | |
for(var i in secureTagNames) { | |
var doms = document.getElementsByTagName(secureTagNames[i]); | |
for(var k in doms) { | |
var domUri = ""; | |
var domAttrName = ""; | |
var secureDomUri = ""; | |
switch(secureTagNames[i]) { | |
// meta->content | |
case "meta": | |
domAttrName = "content"; | |
break; | |
// link->href, a->href | |
case "link": | |
case "a": | |
domAttrName = "href"; | |
break; | |
// form->action | |
case "form": | |
domAttrName = "action"; | |
break; | |
// script->src, embed->src, iframe->src, img->src, input->src | |
// source->src, audio->src, video->src, track->src | |
case "script": | |
case "embed": | |
case "iframe": | |
case "img": | |
case "input": | |
case "source": | |
case "audio": | |
case "video": | |
case "track": | |
domAttrName = "src"; | |
break; | |
default: | |
domAttrName = ""; | |
} | |
// get uri of dom element | |
if(doms[k] != null && typeof(doms[k].getAttribute) !== "undefined") { | |
domUri = doms[k].getAttribute(domAttrName); | |
} | |
// detect http, and replace to https | |
if(domUri != null && domUri.indexOf("http://") > -1) { | |
secureDomUri = alwayshttps_replace_from(domUri); | |
doms[k].setAttribute(domAttrName, secureDomUri); | |
} | |
} | |
} | |
} | |
function alwayshttps_load() { | |
alwayshttps_redirect(); | |
alwayshttps_dom(); | |
} | |
// load alwayshttps when ready document | |
if(typeof(jQuery) !== "undefined") { | |
jQuery(document).ready(function() { alwayshttps_load(); }); | |
} else { | |
window.onload = function() { alwayshttps_load(); }; | |
} |
Add code in your website
<script type="text/javascript" src="https://cdn.rawgit.com/gnh1201/1b4182778df5358bf879582095530a41/raw/ff2130e86282bf5fd28768fcab30571633690ff6/alwayshttps.js"></script>
or install by bower
bower install alwayshttps