在 aa.html中引用javascript,如下:
其中xxx为我的工程名称,但是xxx经常变化(我没有代码管理器,所以每次都新建个工程,如:xxx01,xxx02),怎么才能取得工程名称啊,这样我就不用每次都改代码了。
如果是jsp可以用${pageContext.request.contextPath}或<%=request.getContextPath()%>解决,但现在的情况是html页面,怎么办啊?
[b]问题补充:[/b]
呵呵 ,今天上午问问题的时候,我也想到用相对路径了,不过路径比较深,得用4个../ ,也不知道有没有其他好的 方法?谢谢你eclipse2008
在实际项目中,个人觉得还是不要用现对路径的,到后期很难维护,出现目录结构调整,代码改起来也痛苦。
使用绝对路径的话,如果是纯的html实际是不太适合的。除非使用velocity等模版技术就比较好用的。直接在配置文件里面定义就可以的。如:velocity中的macro.txt。
如果你非要使用纯的html,那我建议你定义一个公共的common.js文件,在里面定义一个变量,如var baseDir = "XXX";
然后用如下的动态加载脚本的方式引用:
function loadScript(src, charset) {
var script = document.createElement('script');
script.setAttribute('language', 'javascript');
if (charset) {
script.setAttribute('charset', charset);
}
script.setAttribute('src', src);
document.getElementsByTagName("head")[0].appendChild(script);
}
function init(){
loadScript(baseDir+"/test1.js","UTF-8");
}
src用相对路径表示
./js
/XX,前一页的
XX/当前页面下的
把设置默认路径的语句删了,这样调用就可以了吧
用js可以得到web应用的根url
[code="java"]
function getWebAppPath()
{
var protocol = document.location.protocol;
var href = document.location.href;
var host = document.location.host;
var pathname = document.location.pathname;
var httpPath = protocol + "//" + host;
var index = pathname.indexOf("/",1);
var path = pathname.substr(0,index);
var httpWebAppPath = httpPath + path;
return httpWebAppPath;
}
[/code]