document.location.search上的javascript更改

时间:2015-10-26 21:03:13

标签: javascript jquery

有没有办法做这样的事情:$(window).on("hashchange", doSomething);但检测到document.location.search更改?

3 个答案:

答案 0 :(得分:2)

这已在On - window.location.hash - change?中提出。简而言之,在JavaScript中没有完全干净的方法;你需要经常检查位置。一些框架和库将为您提供一个很好的抽象层,但在内部,他们只是继续轮询位置。

不幸的是,Lucas的回答不正确 - 您可以使用JavaScript History API修改当前的网址而无需重新加载页面。

答案 1 :(得分:1)

corr # [,1] [,2] [,3] [,4] [,5] [,6] # [1,] 1.0000 0.6008 0.4984 0.1920 0.1959 0.3466 # [2,] 0.6008 1.0000 0.4749 0.2196 0.1912 0.2979 # [3,] 0.4984 0.4749 1.0000 0.2079 0.2010 0.2445 # [4,] 0.1920 0.2196 0.2079 1.0000 0.4334 0.3197 # [5,] 0.1959 0.1912 0.2010 0.4334 1.0000 0.4207 # [6,] 0.3466 0.2979 0.2445 0.3197 0.4207 1.0000 hash标记具有不同的实现。当搜索字符串发生更改时,整个页面被重新加载,但不是search的情况。因此,如果您想对href更改进行一些处理,那么您可以使用hash事件处理程序。

您可以使用beforeunload事件触发代码在导航之前运行...如果您需要更具体的内容(例如,只在您的代码中启动导航),那么我建议您分解代码将window.location更改为单独的函数,并为自定义逻辑添加一个钩子。

为了更好地理解你可能想看看Ben Nadel的post关于这样做,它可能正是你正在寻找的。

答案 2 :(得分:0)

与哈希发生的情况不同,如果您的搜索值因用户的操作而发生变化,您的网页就会重新加载。因此,您的选择是使用onbeforeunload事件:

<body onbeforeunload="return myFunction()">

http://www.w3schools.com/tags/ev_onbeforeunload.asp