2013-02-24 76 views
1

我想通过使用由JavaScript函数返回的文本来设置图像src。将JavaScript返回值分配给src的正确方法是什么?代码如下:使用javascript返回值设置图像src

我想在这里实现的是添加一个虚拟的随机数到URL的末尾,以摆脱浏览器图像缓存。

<body><div class="slideshow" style="position: absolute;"> 
<img src="eval(getMyLink())" width="1024" height="768" style="position: absolute; top: 0px; left: 0px; display: none; z-index: 5; opacity: 0; width: 1024px; height: 768px;" title=""> 
<img src="eval(getMyLink())" width="1024" height="768" style="position: absolute; top: 0px; left: 0px; display: none; z-index: 5; opacity: 0; width: 1024px; height: 768px;" title=""> 
</div> 

<script language="javascript"><!-- 
    bmi_SafeAddOnload(bmi_load, "bmi_orig_img", 0);//--> 
    function getMyLink() { 
     var a = "./Files/1.jpg?a=" + Math.floor(Math.random() * 11); 
     return a; 
    } 
</script></body> 

回答

1

使用jQuery。你需要为你的img标签添加一个id属性,但这应该做到这一点。

<img id="imgLink1" width="1024" height="768" style="position: absolute; top: 0px; left: 0px; display: none; z-index: 5; opacity: 0; width: 1024px; height: 768px;" title=""> 

$().ready(function(){ $('#imgLink1').att('src', getMyLink()); }); 
+0

没有理由导入一个巨大的图书馆只是这一点。 – SomeKittens 2013-02-24 14:06:16

+1

@SomeKittens它已经被标记jQuery – 2013-02-24 14:06:55

+0

它不应该被编辑。 – SomeKittens 2013-02-24 14:10:50

-1

我的意见:避免内联JS,使用CSS,并使用JQuery。

我会做这样的:

<body> 
    <div class="slideshow" style="position: absolute;"> 
     <img id="img1" src="" class="myImages" title="image"> 
     <img id="img2" src="" class="myImages" title="image"> 
    </div> 
    <script> 

     bmi_SafeAddOnload(bmi_load, "bmi_orig_img", 0); 

     function getMyLink() { 
      var a = "./Files/1.jpg?a=" + Math.floor(Math.random() * 11); 
      return a; 
     } 

     //Assign image source and display it (you have defined display:none attribute) 
     $('#img1').attr('src', getMyLink()).fadeIn(300); 
     $('#img2').attr('src', getMyLink()).fadeIn(300); 
    </script> 

    <style> 
     .myImages { 
      width : 1024px; 
      height : 768px; 
      position: absolute; 
      top: 0px; 
      left: 0px; 
      display: none; 
      z-index: 5; 
      opacity: 0; 
     } 
    </style> 
</body> 
+1

上面加载了相关的HTML元素,文档的结构在这里很清楚:.ready()真的需要吗? – rlemon 2013-02-24 14:06:58

+0

JQuery已被标记,当我写这个答案。我认为这是一个很好的例子来实施这种行为。 – sdespont 2013-02-24 14:10:43

+0

我在这里没有提到jQuery的使用 - 但是.ready的使用 - body从上到下被解析 - 当js被执行时元素在DOM中 - 因此$(document).ready(对于这个案例 – rlemon 2013-02-24 18:43:46