使用javascript设置背景图像

时间:2010-05-01 16:35:13

标签: javascript css google-chrome

在chrome,safari和opera中将背景图像设置为绝对参考,例如:“/ images / image.png”将其更改为“http://sitepath/images/image.png”。

它在firefox中没有这样做。

有没有办法避免这种行为,还是写入浏览器的javascript引擎?使用jquery设置背景图像也可以解决这个问题。

问题在于我将HTML发布到需要此特定格式的网址的php脚本中。我知道设置图像路径相对修复了这个问题,但我不能这样做。

唯一的另一种选择是使用正则表达式。转换网址。

感谢。

在firefox和chrome / webkit浏览器中测试:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<div style="height:400px;width:400px;background-image:url(/images/images/logo.gif);">
</div>
<br />
<br />
<div id="test" style="height:400px;width:400px;">
</div>
<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#test").css('background-image',"url(/images/images/logo.gif)");
        alert(document.getElementById('test').style.backgroundImage);
    });
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

不确定您是如何将该位置放入文档中的,但您可以使用window.location.hostname来获取域并在其前面添加。

var bgImg = window.location.hostname + '/images/images/logo.gif';
$("#test").css('background-image', 'url('+bgImg+')');

你会用生成图像替换/images/images/logo.gif(服务器端,我猜?)

答案 1 :(得分:2)

更好的方法是更改​​项目上的类,以便新类将图像更改为您想要的任何内容。类似的东西:

$("#test").addClass("newClass");

这是一种更清洁的方法,可以更好地降低并允许正确分离关注点。

如果您必须坚持更改内联CSS,则必须使用绝对引用以在所有浏览器中保持相同。

$("#test").css("background", "url(" + window.location.hostname + "/logo.gif)");

答案 2 :(得分:-1)

$('#divID').css("background-image", "url(/myimage.jpg)");