【问题标题】:Using javascript I would like to add an image as a link, but would like to change the image about every third time someone visits使用 javascript 我想添加一个图像作为链接,但想在有人访问的第三次更改图像
【发布时间】:2013-09-24 08:30:44
【问题描述】:

假设我有两张图片上传到我的服务器: http://mywebsite.com/image1.jpghttp://mywebsite.com/image2.jpg

我想在我的网站上显示 image1.jpg 两次,这样点击后会转到:http://gohere.com 但大约每三次,我希望 image2.jpg 显示相同的链接。

感谢大家的帮助, 琼斯

(我真的很感激整个代码,我猜它不会那么长,随机对我来说没问题。假设生成一个介于 1 和 3 之间的随机数,如果它可以除以 3,则 image2 可以使用。)

【问题讨论】:

  • 您需要在请求之间持久化数据。您可以使用数据库在服务器端执行此操作,也可以通过会话/cookies 执行此操作。这可能会对您有所帮助:stackoverflow.com/a/7484350/877472
  • 我用了“关于”这个词,因为随机对我来说很好。比如说生成一个1到3之间的数,如果能被3整除,就可以用image2。但我不知道我将如何编码,这就是我需要帮助的原因。谢谢!
  • 将问题分解为更小的组件并逐个研究。您的难题有三个部分:如何在一个范围内生成随机数,如何在请求之间存储它,以及如何将链接中的一个图像切换为另一个(提示:使用 jQuery)。您有一个链接可以帮助您解决第二个问题,找到其他两个问题的答案。

标签: javascript


【解决方案1】:

这里有几个解决方案。

如果您有服务器端代码,则可以在页面生成时执行此操作,生成一些随机数或保留页面加载次数的计数器并检查该值是否为倍数3 个。

另一种解决方案是在 JavaScript 中执行此操作,这里的随机解决方案可能更好。

尝试将此 HTML 用于图像

<a href="http://gohere.com"><img id="my-image" /></a>

还有这个 JavaScript:

<script type="text/javascript">
    document.ready = function() {
        var myImage = document.getElementById("my-image");

        if (Math.random() < 0.67) {
            myImage.src = "http://mywebsite.com/image1.jpg";
        } else {
            myImage.src = "http://mywebsite.com/image2.jpg";
        }
    }
</script>

【讨论】:

  • 哇!!这正是我想要的!非常感谢您了解我的需求并提供完美的解决方案!再次感谢,感谢一百万!祝你有美好的一天,一切顺利,琼斯
【解决方案2】:

您可以尝试使用 jQuery/Javascript 在 1 和 2 之间随机交换:

$(document).ready(function(){
    var rdm = Math.round(Math.random()) + 1;
    $('img').attr('src', 'http://mywebsite.com/image' +  rdm + '.jpg');
});

【讨论】:

  • 避免使用 jQuery 在不必要且未由 post-owner 使用时。他希望第二张图像的概率是 1/3,而不是 1/2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 2013-05-27
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多