虽然之前已经提出并回答了这个问题,包括在本网站上,但我无法解决我的问题。
我正在使用Masterpages和Javascript文件......现在每个人都是如此“棘手”的主页获得相对路径......
好吧,我正在使用一个png修复程序:单元Png修复(相当不错,说实话......甚至比JQuery更好),这个修复需要使用一个名为clear.gif的小图像。 clear.gif文件的路径存储在JavaScript文件中的变量中。
然而,由于我使用的是Masterpages,我不能简单地打开JS文件并写一个静态路径......我想过。
我尝试的是:从JS文件中删除变量,并在外面声明它,但是在sabe Script块中。像这样:
<!--[if lt IE 7]>
<script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript">
var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
</script>
<![endif]-->
我甚至试图在网站的负责人中声明它。 (我将我的JS文件放在页面底部,以加快速度)。
不幸的是我的解决方案不起作用......这就是为什么我在这里做这个问题。 :(
答案 0 :(得分:3)
您无法在单个元素中声明src和内容。
来自the script element definition on the W3C site:
如果src具有URI值,则用户代理必须忽略该元素的内容并通过URI检索脚本
尝试将它们分开:
<script type="text/javascript">
var clear="<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>";
</script>
<script src="<%= ResolveClientUrl("~/masterpages/js/unitpngfix.js") %>" type="text/javascript"></script>
答案 1 :(得分:0)
A)您可以声明Javascript资源的src属性和块内的信息。你需要在src块
之前在它自己的块中声明clearB)我完成将代码生成的URL传递给Javascript的方法是在我的视图/母版页中我有一个脚本块,它声明了一个附加到Window的url数组,这样就不会出现奇怪的冲突与其他脚本:
<script type="text/javascript">
Window.url = {
clearImage: '<%= ResolveClientUrl("~/masterpages/img/clear.gif") %>',
otherUrl: '<%=ResolveClientUrl("~/other/file/...")%>'
};
</script>
然后在您的实际脚本文件中,您可以通过
获取它var img = window.url.clearImage;
它确实将脚本绑定到该特定视图,但我不认为这是一个可怕的事情。