当服务器完成处理表单时,javascript如何注册回调?这是我的特殊设置:
<form
id="savePlaylistForm"
name="savePlaylistForm"
target="savePlaylistIFrame"
method="post"
action="<?=base_url()?>index.php/savePlaylist">
<input
type="hidden"
id="savePlaylistEntire"
name="savePlaylistEntire" />
</form>
<iframe
id="savePlaylistIFrame"
name="savePlaylistIFrame"
style="display: none">
</iframe>
我尝试过以下无效:
的onSubmit
将onSubmit附加到表单不是正确的事件,因为onSubmit在客户端尝试提交时发生。甚至还没有联系过服务器。
的onLoad
我将onLoad附加到目标iFrame。在我的情况下,它不会被解雇。我的服务器脚本设置标头以模拟m3u播放列表文件。 IFrame只在加载普通HTML页面时触发onLoad,而不是在弹出文件保存对话框时触发。即使我要在iFrame中加载纯HTML页面,onLoad也只会在用户第一次提交表单时触发。后续提交不会触发onLoad。
答案 0 :(得分:1)
这没有任何意义,但是提交表单会重新加载带有新响应的页面。所以你的原始文档甚至不再存在,那么它怎么能运行回调呢?
您可以只附加一个取消默认提交操作的onSubmit处理程序(通过返回false)并通过进行Ajax调用来复制默认浏览器提交。然后你有一个地方可以附加一个响应回调(通过监听onReadyStateChange,或者使用更高级别的东西,比如jQuery)。