JS怎样获得网站的根目录或虚拟目录的根地址?

时间:2022-03-06 12:14:20
如题,就相当于asp.net里面的Request.ApplicationPath这个一样
例如,当我在IIS中建的虚拟目录是http://localhost/HRS
怎样用js获得
但当我建的是网站时如http://localhost:888/
两个都是指向同一个地方,怎样的js代码可以获取到网站或虚拟目录的根,因为我不知道到时系统上线时建的是虚拟目录还是网站

因为有一幅图片我是要在js里面调出来显示,而系统的每个页面都要用到,所以就存在一个相对路径的问题,我必须用js找到根,才能在所有目录下的网页中正常显示

15 个解决方案

#1


不需要相对路径

用   "/"

#2


不需要相对路径

用   "/"
-----------------------------
只对在IIS建成网站才有效果,如果我是建的虚拟目录HRS,"/"它就会去取http://localhost/,而不是http://localhost/HRS

#3


哪么你的虚拟目录会变化?

?????????????????????????????????

#4


虚拟目录的名称也是未定的,反正我就是要取到:如果是虚拟目录,就是取到虚拟目录下,如果是网站,就要取到网站根目录下

#5


alert( document.URL.replace('test.php', '') ) ;

这样可以了。用replace的方法来实现。

#6


把test.php 这个字符串改成你当前文件相对于根目录的路径就行了

#7


给我全部分呀。我在争分呢

#8


johin727(我是新手我怕谁?) 
你这种方法肯定不行,你可能都还没理解我的意思
test.php有可能放在网站根目录的第一层目录下或第二层、三层下,你获得它的当有位置没用,我要获得它的根

#9


顶上去

#10


顶上去

#11


在jsp里:
<%
String webRoot = request.getContextPath();
%>
<script>
var webRoot = "<%=webRoot%>";
</script>

在js里就可以用webRoot去根目录了





#12


会报没有request的错误

#13


var strFullPath=window.document.location.href;
var strPath=window.document.location.pathname;
alert(strPath+"路径名称");
var pos=strFullPath.indexOf(strPath);
var prePath=strFullPath.substring(0,pos);
return prePath;

#14


我们可以用javascript获得其中的各个部分
1, window.location.href
全部URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的协议部分
本例返回值:http:
3,window.location.host
URL 的主机部分
本例返回值:www.x2y2.com
4,window.location.port
URL 的端口部分
假如采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并应用javascript来获得信任应的参数值
本例返回值:?ver=1.0&id=6
7,window.location.hash
锚点
本例返回值:#imhere

#15


引用 14 楼 b58585885 的回复:
我们可以用javascript获得其中的各个部分
1, window.location.href
全部URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&amp;id=6#imhere
2,window.location.protocol
URL……


对于这样一个URL
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

#1


不需要相对路径

用   "/"

#2


不需要相对路径

用   "/"
-----------------------------
只对在IIS建成网站才有效果,如果我是建的虚拟目录HRS,"/"它就会去取http://localhost/,而不是http://localhost/HRS

#3


哪么你的虚拟目录会变化?

?????????????????????????????????

#4


虚拟目录的名称也是未定的,反正我就是要取到:如果是虚拟目录,就是取到虚拟目录下,如果是网站,就要取到网站根目录下

#5


alert( document.URL.replace('test.php', '') ) ;

这样可以了。用replace的方法来实现。

#6


把test.php 这个字符串改成你当前文件相对于根目录的路径就行了

#7


给我全部分呀。我在争分呢

#8


johin727(我是新手我怕谁?) 
你这种方法肯定不行,你可能都还没理解我的意思
test.php有可能放在网站根目录的第一层目录下或第二层、三层下,你获得它的当有位置没用,我要获得它的根

#9


顶上去

#10


顶上去

#11


在jsp里:
<%
String webRoot = request.getContextPath();
%>
<script>
var webRoot = "<%=webRoot%>";
</script>

在js里就可以用webRoot去根目录了





#12


会报没有request的错误

#13


var strFullPath=window.document.location.href;
var strPath=window.document.location.pathname;
alert(strPath+"路径名称");
var pos=strFullPath.indexOf(strPath);
var prePath=strFullPath.substring(0,pos);
return prePath;

#14


我们可以用javascript获得其中的各个部分
1, window.location.href
全部URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的协议部分
本例返回值:http:
3,window.location.host
URL 的主机部分
本例返回值:www.x2y2.com
4,window.location.port
URL 的端口部分
假如采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并应用javascript来获得信任应的参数值
本例返回值:?ver=1.0&id=6
7,window.location.hash
锚点
本例返回值:#imhere

#15


引用 14 楼 b58585885 的回复:
我们可以用javascript获得其中的各个部分
1, window.location.href
全部URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&amp;id=6#imhere
2,window.location.protocol
URL……


对于这样一个URL
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere