我想在Javascript中引用域名,在我的本地环境中http://localhost/project
和http://www.project.com(或https取决于页面)。我目前正在定义2个全局变量,一个用于链接到其他非https页面(我不想使用当前页面可能是https的事实),另一个用于检测页面是否为https,在没有不安全元素警告的情况下加载资源。
本地版本:
var link_base_url = 'http://localhost/project/'; //for links to other non-secure pages
if(window.location.protocol == 'https:') var base_url = 'http://localhost/project/'; //SSL version for displaying resources or calling ajax scripts
else var base_url = 'http://localhost/project/'; //non-SSL version for displaying resources or calling ajax scripts
产品版本:
var link_base_url = 'http://www.project.com/'; //for links to other non-secure pages
if(window.location.protocol == 'https:') var base_url = 'https://www.project.com/'; //SSL version for displaying resources or calling ajax scripts
else var base_url = 'http://www.project.com/'; //non-SSL version for displaying resources or calling ajax scripts
我不是Javascript方面的专家,但我认为这可能不是最干净的方法:它每次我想部署这个脚本时都会强制我更改这几行代码,并且根据我的理解使用全局变量不是那么好。
有更好的方法吗?我没有使用任何像Ember这样的JS框架。
感谢您的投入!
答案 0 :(得分:0)
你需要这样的东西吗?
var link_base_url = 'http://'+window.location.host+'/';
var base_url = /\.com$/.test(window.location.hostname) ? window.location.protocol+'//'+window.location.host+'/' : link_base_url;
答案 1 :(得分:0)
您可以使用location.href(包含当前页面的完整网址)来检查您当前的环境(http://www.w3schools.com/jsref/prop_loc_href.asp)。
var checkURL = location.href, base_url = '', link_base_url = '';
if (/\/\/localhost\/project\//.test(checkURL)) {
link_base_url = 'http://localhost/project/';
if (window.location.protocol == 'https:') {
base_url = 'https://localhost/project/';
} else {
base_url = 'http://localhost/project/';
}
} else {
link_base_url = 'http://www.project.com/';
if (window.location.protocol == 'https:') {
base_url = 'https://www.project.com/';
} else {
base_url = 'http://www.project.com/';
}
}