繁体   English   中英

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

[英]Is there an event like hashchange for query strings?

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

但是,哈希具有我不一定要关注的默认行为,例如使页面跳转到给定的位置(有时无关紧要)。

我觉得获取/设置查询字符串会更合理,但是:

  1. 是吗?

  2. 设置查询字符串时是否可以监听事件?

  3. 我应该了解与查询字符串相关的行为吗?

  1. 重塑锚定行为是不合逻辑的。 最好不要将哈希链接公开给无关紧要的片段(尽管现代浏览器正在对idid任何元素执行scrollIntoView() ,但<a name="xxx">则具有专用的行为)。 因此,答案是肯定的,页面参数应通过querystring传递。
  2. 事件window.beforeunload ,是的,重新加载页面时javascript:void(location.search='some')设置
  3. 没有惊喜, 看看

另外,关于使用查询字符串: http : //xkr.us/js/querystring

这取决于您在做什么。

查询字符串的更改将始终触发页面重新加载。 您无需更改页面即可更改的URL的唯一部分是#部分。

在javascript应用程序中,页面加载通常不可行。 但是,当具有传统的html页面请求/响应模型时,可以使用它。

但是没有事件AFAIK,因为它将更改页面。

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

当您执行此操作时,会触发一些事件。 “ beforeunload”事件将触发,但是它并不是非常有用,因为它在用户单击链接或关闭窗口时也将触发。

实际上,如果您更改查询字符串将触发的事件将是它加载的新页面上的加载事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM