gpt4 book ai didi

javascript - 当前 URL 之后添加 "?"时的窗口事件

转载 作者:行者123 更新时间:2023-11-28 20:44:19 25 4
gpt4 key购买 nike

Hashchange 用于何时

index.php

更改为,例如

index.php#my-hash

$(window).bind('hashchange', function() {
// do stuff
});

但是当有 时是否有一个事件?在网址之后,即

index.php?id=foo&something_else=bar...

编辑

好的,就在我提交表单的时候。我提交表单,然后 URL 更改为

index.php?id=blah#my-hash

但是我尝试监听 a) hashchange 和 b) 表单提交:

$('form').submit(function() {
go_to_signup_form();
});

两者都不起作用(我认为该页面令人耳目一新?)。我不能对 php 进行太多更改,因为它是 cms 的一部分,我不想破坏 Controller 类中发生的任何事情,所以我宁愿尝试看看何时:

index.php

更改为

index.php?id=blah#my-hash

编辑 #2感谢大家的反馈,让它工作:

if (url.indexOf("?") !== -1) {
go_to_signup_form();
}

最佳答案

不,这是因为参数 (?foobar) 通常不用于客户端代码。链接到同一网址上的新参数 (index.php -> index.php?foo=bar) 会使浏览器加载新页面,同时添加哈希值 (index.php -> index.php#foo=bar) 不会使浏览器向服务器传输任何数据。

url 的哈希部分,它是客户端数据。因此,为其提供一个 change 事件监听器非常有用。

在您的控制台中,在网址中还没有哈希值的随机站点上尝试这些:

window.location.href += "?test"

和:

window.location.href += "#test"

您将看到第一个将重新加载页面(发送新的 HTTP 请求),第二个似乎不会执行任何操作。

要阻止表单提交:

$('#target').submit(function() {
// Your onclick code here
return false; // Do not submit.
});

关于javascript - 当前 URL 之后添加 "?"时的窗口事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com