【问题标题】:How to open a specific url page every time it is reloaded from the browser?每次从浏览器重新加载时如何打开特定的 url 页面?
【发布时间】:2019-07-21 01:05:20
【问题描述】:

如果您更改 URL 末尾的数字,我有一个生成新图像的链接。我希望每次从浏览器刷新页面时,它都应该生成不同的图像。我不想使用任何按钮单击,而是使用浏览器中的刷新按钮。我尝试使用 window.onload 属性,但遇到了一些问题。

我的代码几乎可以工作,每次刷新页面时,我都能生成一个带有随机数的新 url,但是当我尝试加载它的页面时,它不起作用。它卡在第一个随机网址上。我知道 url 是随机更改的,因为从警报消息中我可以验证这一点。请帮忙!

<script>
var url = "https://memegenerator.net/img/images/501.jpg";
function load()
{
    var num=url.match(/\d/g).join("");
    var numreplace=Math.floor(Math.random()*1000);
    url=url.replace(num,numreplace);

    openpage(url);
}

function openpage(url) {
    alert(url);
    //window.location.href=url;
    //or window.location.replace(url);
}

window.onload=load();
</script>

我希望每次重新加载页面时都会加载一个新图像。

【问题讨论】:

  • 如果解决了您的问题,请接受。

标签: javascript html web window.location


【解决方案1】:

问题是您将页面重定向到另一个 URL 上的图像,例如 https://memegenerator.net/img/images/377.jpg,因此当您刷新页面时,它只会刷新该 URL 并停留在该图像上。我已经更改了您的代码,以便它将图像插入到您的页面正文中,这样它就会保留在您的 URL 上,并且每次都会制作不同的图像。您可以通过按几次Run 来测试它。

<body>
</body>

<head>
  <script>
    var url = "https://memegenerator.net/img/images/501.jpg"

    function load() {
      var num = url.match(/\d/g).join("")
      var numreplace = Math.floor(Math.random() * 1000)
      url = url.replace(num, numreplace)

      openpage(url)
    }

    function openpage(url) {
      console.log(url)
      document.body.innerHTML = '<img src="'+url+'">'
    }

    window.onload = load()
  </script>
</head>

【讨论】:

    【解决方案2】:

    警报消息可以阻止文档加载新的 url,例如 window.location.href

    警报消息也会阻止form action

    所以只需删除alert(url)

    您的代码运行良好:

    <script>
    var url = "https://memegenerator.net/img/images/501.jpg";
    function load()
    {
        var num=url.match(/\d/g).join("");
        var numreplace=Math.floor(Math.random()*1000);
        url=url.replace(num,numreplace);
    
        openpage(url);
    }
    
    function openpage(url) {
        window.location.href=url;
    }
    
    window.onload=load();
    </script>
    

    试着像这样缩短你的代码:

    function load() {
    var num=Math.floor(Math.random()*1000); 
    var url="https://memegenerator.net/img/images/"+num+".jpg";
    openpage(url);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 2020-07-17
      • 2016-11-17
      相关资源
      最近更新 更多