使用javascript返回值设置图像src

时间:2013-02-24 13:51:24

标签: javascript html

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

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

<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>

2 个答案:

答案 0 :(得分: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()); });

答案 1 :(得分:-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>