参考资料:document.ready和window.onload的区别
公司的项目是用html来写的前端;
由于最近因为业务扩展需要变更名字然后部署到不同的客户,又不想更改为jsp;
因此想了个办法,就是定义一个js变量在页面加载时读取当前浏览器地址,切割出项目名;
直接将这个代码块放入一个js;
在每个页面引入之后,直接使用publicField.projectName即可;
//定义一个对象
var publicField = {};
//定义对象中的属性
publicField.projectName = "";
/**
* 自定义document.ready方法;
* 此方法执行在window.onload之前;
* @param callback
*/
document.ready = function (callback) {
///兼容FF,Google
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function () {
document.removeEventListener('DOMContentLoaded', arguments.callee, false);
callback();
}, false)
}
//兼容IE
else if (document.attachEvent) {
document.attachEvent('onreadystatechange', function () {
if (document.readyState == "complete") {
document.detachEvent("onreadystatechange", arguments.callee);
callback();
}
})
}
else if (document.lastChild == document.body) {
callback();
}
}
//页面加载之前执行;
document.ready(function () {
var href = window.location.href;
//页面url通常为http://localhost:8090/XXXX/images/1_15.png
//先切割//,得到
// http:,localhost:8090/XXXX/images/1_15.png
//取第二个,再切割/,得到
//localhost:8090,XXXX,images,1_15.png
//取第二个,得到项目名,XXXX然后重写当前页所有引入的url
//拼接/+项目名,得到/XXXX前缀,
publicField.projectName = "/"+href.split("//")[1].split("/")[1];
})