javascript 绝对路径与相对路径的问题。

zzmsl 2008-04-07 09:57:44
这样用没有任何问题
<script language="javascript" type="text/javascript" src="Calendar/WdatePicker.js"></script>

但是把它放到另外一个地址用就不了行,这个地址没问题的。如:
<script language="javascript" type="text/javascript" src="http://www.xxx.com/Calendar/WdatePicker.js"></script>

然后我又测试了其他js的文件,也是这个问题。怎么解决啊?
...全文
202 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
datahandler2 2008-04-08
  • 打赏
  • 举报
回复
如果js 文件在同一个项目内,为什么绝对路径不用/开头的形式,非要搞http 形式,本身用法就很奇特。
另外如果js在其他站点,你也可以下到本地来,搞这种我还以为什么中了病毒。
zzmsl 2008-04-08
  • 打赏
  • 举报
回复
是啊。我一看错误提示,第一个错误就是“没有权限”。
zyug 2008-04-08
  • 打赏
  • 举报
回复
呃.很简单呀,域名不一样呀

<script language="javascript" type="text/javascript" src="Calendar/WdatePicker.js"> </script>
表示本域的


<script language="javascript" type="text/javascript" src="http://www.xxx.com/Calendar/WdatePicker.js"> </script>

表示是其它域的.


JS对于不是本域的脚本操作有限制的.经常会返回,没有权限的提示
闲游四疯 2008-04-08
  • 打赏
  • 举报
回复
同上~没试过~
chengqscjh 2008-04-08
  • 打赏
  • 举报
回复
直接调用别人网页的js
-----------------------
直接浏览后放在本地上不是更好.src="http://www.xxx.com/Calendar/WdatePicker.js"这样我还没试过
zzmsl 2008-04-08
  • 打赏
  • 举报
回复

我打开的页面是www.a.com的某个aspx页面
然后那个js是放在www.b.com上的。
insus 2008-04-08
  • 打赏
  • 举报
回复
Insus.NET对这个问题,有深刻体会.
特别是在用户控件中引了Js文件,或是用Html的tag来显示图片时,由于用户控件,如果在相同层别的aspx文件引时,是没有问题的.
如果放在不上下层别的aspx文件,就会出现js引用不到,图片显示不了.
下面是一些解决方法:
1,可以用ResolveUrl("~/...");
如果是在前台,你可以这样写 <script src='<%=ResolveUrl("~/InsusJsUtility.js") %>' type="text/javascript"></script>
2.第一种方法,一般情况之下,是可以这样用的.如果你的专案的<head>是在后台控件,或是后台生成的,如第一种写法,它是会显示例外:"控件包含代码块(即 <% ... %>),因此无法修改控件集合。"
所以就不能这样写法.
3.得写一个函数来解决问题.

private string getCurrentPath = HttpContext.Current.Request.FilePath;
public string CurrentPathPrefixion
{
get
{
int i = getCurrentPath.Length - getCurrentPath.Replace("/", String.Empty).Length - 2;
string s = string.Empty;
if (i > 0)
{
for (int j = 0; j < i; j++)
{
s += "../../"; //注意这里!!!
}
}
return s;
}
}




这个函数的使用:
CurrentPathPrefixion + "InsusJsUtility.js"; (js)

CurrentPathPrefixion + "xxx.Jpg";(Image)


zzmsl 2008-04-08
  • 打赏
  • 举报
回复
用绝对路径有什么特别,比如我有个日期控件需要放在几个二级域名下面,难道每个二级域名下都要复制一份?
就说这个网页,你查看源代码,拉到最下面是不是有一行 http://www.google-analytics.com/urchin.js
我查了下,估计是跨域的问题,有种解决方法是定义 document.domain
zzmsl 2008-04-07
  • 打赏
  • 举报
回复
能下载的!js引用的东西全部都在一个文件夹下啊,都复制过去了啊。
chocolateboy 2008-04-07
  • 打赏
  • 举报
回复
不会吧?直接在浏览器输入“http://www.xxx.com/Calendar/WdatePicker.js”看能不能下载?
js文件中有没有引用其它路径的资源或图片而没有上传到服务器?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧