图像资源的位置

时间:2011-02-24 01:54:30

标签: javascript asp.net html css

我有一个插件在我客户的网站上运行。该插件位于http://mycompany.com/Tool.js,需要提取一些图片。问题是,javascript似乎试图从客户的网站上提取图像,而不是从我自己的网站上提取图像。这是JS:

button.style.cssText = 'position:absolute;top:-20px;right:-20px;background-image:url(/Resource/Button.png);

在上面的JS中,检索URL是CUSTOMER.com/Resource/Button.png (插件运行的网站),而不是我的网站mycompany.com/Resource/Button.png

请注意,我不能使用绝对路径,因为它们会变成环境之间的痛苦(测试/产品),也因为我的图像检索必须使用基于客户端环境的http / https(否则如果使用http,则可能会出错) https网站)。

4 个答案:

答案 0 :(得分:1)

只需将其替换为 background-image:url(http://mycompany.com/Resource/Button.png);

答案 1 :(得分:1)

而不是使用Javascript或其他任何内容,您实际上只能在样式表中的URL之前使用//,它将使用httphttps,具体取决于客户端访问网站的方式。将样式表链接到页面时,可以在HTML页面上执行相同的操作。所以你的HTML页面将是:

<link href="//mycompany.com/stylesheet" />

在样式表中,您可以

background-image:url(//mycompany.com/Resource/Button.png);

修改

我忘了提到在将javascript文件附加到页面时也可以这样做。

例如:<script type="text/javascript" src="//mycompany.com/javascript"></script>

答案 2 :(得分:0)

应该包括绝对路径!!

switch (window.location.protocol) {   

case "http:":
button.style.cssText = 'position:absolute;top:-20px;right:-20px;background-image:url(http://yourcompany.com/Resource/Button.png);break;

case "https:":
button.style.cssText = 'position:absolute;top:-20px;right:-20px;background-image:url(https://yourcompany.com/Resource/Button.png);break;

} 

答案 3 :(得分:0)

javascript将在其运行位置的上下文中运行,而不是从其下载的位置运行。如果资源URL不是绝对的,则将假定该域是您的浏览器当前正在访问的域。

您需要一个绝对网址。例如。 http://mycompany.com/Resource/Button.png