【问题标题】:How do you run JS code after form submission and subsequest page redirect?表单提交和子页面重定向后如何运行 JS 代码?
【发布时间】:2022-01-05 03:05:22
【问题描述】:
我在 HTML 中有一个 form,如下所示:
<form action="/home.html" method="post" name="loginForm" target="_top" id="login-form" onsubmit="func(this);"></form>
此表单在提交后会将当前网页更改为/home.html。我要做的是在网页更改后执行特定的JS代码,只有表单所在的网页才知道。我该怎么做呢?
【问题讨论】:
标签:
javascript
html
forms
redirect
【解决方案1】:
由于 JavaScript 执行不会在不同加载的文档之间持续存在,因此您无法仅从原始页面执行此操作。您需要将所需的所有 JavaScript 功能放入 home.html 包含的脚本文件中。
如果您需要将变量从原始页面传递到/home 页面,您可以将它们包含在<form> 中,以便您的后端可以将它们回显到新的目标页面,或者将它们包含为query parameters目标页面解析并使用。
【解决方案2】:
我想出了一个办法。创建一个命名的 iframe,然后将 form 元素的 target 属性设置为 iframe 的名称。使 iframe 全屏显示,然后您就可以有效地执行我的要求,因为当表单提交时,响应将被放入 iframe 而不是整个选项卡,并且原始页面将具有执行权限。
请注意,这仅适用于 iframe 与父级具有相同来源的情况。