你如何 运行 表单提交和子请求页面重定向后的 JS 代码?

How do you run JS code after form submission and subsequest page redirect?

我在 HTML 中有一个 form 像这样:

<form action="/home.html" method="post" name="loginForm" target="_top" id="login-form" onsubmit="func(this);"></form>

提交此表单后,会将当前网页更改为 /home.html。我想做的是在网页更改后执行特定的 JS 代码,只有表单所在的网页知道。我该怎么做?

因为 JavaScript 执行不会跨不同加载的文档持续执行,您将无法单独从原始页面执行此操作。您需要将所需的所有 JavaScript 功能放入 home.html 包含的脚本文件中。

如果您需要将变量从原始页面传递到 /home 页面,您可以将它们包含在 <form> 中以便您的后端可以将它们回显到新的目标页面,或者包括它们作为目标页面解析和使用的 query parameters

我想出了一个方法来做到这一点。创建一个命名的 iframe,然后将表单元素的 target 属性设置为 iframe 的名称。使 iframe 全屏显示,然后您就可以有效地执行我的请求,因为当表单提交时,响应将放入 iframe 而不是整个选项卡,并且原始页面将具有执行权限。 请注意,这仅适用于 iframe 与父级具有相同来源的情况。