是否有像查询字符串hashchange事件?

我一直使用哈希在页面之间传递数据(如设置scrollTop()等),并且还使用hashChange事件触发给定页面上的更改。

但是,哈希具有我不一定感兴趣的默认行为,如使页面跳转到给定(有时不重要)的位置。

我觉得要设置一个查询字符串会更合乎逻辑,但是:

  • 是吗?

  • 查询字符串设置时是否有可以侦听的事件?

  • 是否有我应该了解的与查询字符串相关的行为?


  • 重塑锚定行为是不合逻辑的。 最好不要将散列链接暴露给无关紧要的片段(尽管现代浏览器正在为任何带有id元素执行scrollIntoView() ,但对于<a name="xxx"> )有一个专门的行为。 所以,答案是肯定的,页面参数应该通过querystring传递。
  • 事件是window.beforeunload ,是的,当javascript:void(location.search='some')已被设置时,页面重新加载
  • 没有惊喜,看看
  • 另外,使用querystring:http://xkr.us/js/querystring


    正如其他答案所说,更改查询字符串将导致页面重新加载。 就浏览器而言,您将进入一个全新的页面。

    有这样的事情会发生。 'beforeunload'事件会触发,但它不会非常有用,因为当用户点击链接或关闭窗口时它也会触发。

    有效地,如果更改查询字符串,将触发的事件将成为加载的新页面上的加载事件。


    这取决于你在做什么。

    查询字符串更改将始终触发页面重新加载。 在没有页面重新加载的情况下,您可以更改的URL的唯一部分是#部分。

    在JavaScript应用程序中,页面加载通常不好。 但是当使用传统的html页面请求/响应模型时可能会使用它。

    虽然没有事件AFAIK,因为它会改变页面。

    链接地址: http://www.djcxy.com/p/3891.html

    上一篇: Is there an event like hashchange for query strings?

    下一篇: Give me some awesome Web2py Tip & Tricks which makes you more productive