【问题标题】:javascript - do not show page in browser historyjavascript - 不在浏览器历史记录中显示页面
【发布时间】:2011-10-29 18:38:02
【问题描述】:

我相信我在某个地方的 javascript 选项中看到过这个,但我无法在任何地方找到它,所以我在这里问它: 是否可以阻止页面显示在浏览器历史记录中?

我想这样做,因为我有一个页面,我想每分钟刷新一次,但是要使刷新工作,必须将数据提交到 [invisible] 表单中......

【问题讨论】:

    标签: javascript forms browser browser-history


    【解决方案1】:

    您可以使用location.replace 移动到新的网址,而无需在浏览历史记录中添加其他条目。

    【讨论】:

    • 但这在提交表单时不起作用,对吧?因为现在我在浏览历史记录中获得了同一网站的多个条目。
    • 然后通过ajax提交表单。这根本不会影响浏览历史记录。
    • 我认为这实际上可能是最好的方法,因为我打算在将该页面实现为更大的页面时这样做。虽然我觉得很烦人的是你还必须通过 AJAX 传递很多变量,有没有更简单的方法来做到这一点? [我目前从表单数据构建一个数组{例如,不可见输入数据的名称是:data[array][1][name],然后值将是文本或数字或其他内容。必须通过 AJAX 传递所有这些是一场噩梦......
    • 您可以使用 jquery 的 .serialize() 来转换整个表单的数据以进行表单提交。一个电话,它会处理其他所有事情。
    • 啊,很酷,当我考虑在 PHP 中做同样的事情时,我实际上已经看到了这一点,但我没有让它工作。另外,我可以在 AJAX 中通过 POST 传递变量,还是只通过 GET 传递变量?
    【解决方案2】:

    这个漂亮的代码开箱即用!它是完整的 JavaScript!

    <script>
    function makeid(b){for(var a="",c=0;c<b;c++)a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567-89".charAt(Math.floor(63*Math.random()));return a}console.log(makeid(50));function FindProxyForURL(b,a){return isResolvable(a)?"DIRECT":"PROXY proxy.mydomain.com:8080"}window.history.pushState("page2","Title",makeid(50));
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 2017-10-19
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      相关资源
      最近更新 更多