iframe提交action处理后刷新父页面&在action中控制页面刷新

本文介绍了一种在iframe内部操作后刷新外部父页面的方法,通过JavaScript实现双击更改头像后的页面即时更新效果。
最近用到一个小功能,即双击相册列表中的照片时,把此照片设为头像,由于我用的是iframe,所以在action处理过后返回的jsp页面不能达到父页面的刷新。 IPictureMgr pictureMgr = (IPictureMgr) getBean("pictureMgr"); List result = pictureMgr.get(username); req.setAttribute("result", result); req.setAttribute("filepath", filepath); return mapping.findForward("add"); 如果这样的话每次只能手动刷新整个页面才能实时显示修改的头像,如果想刷新父页面,只需要在script中做如下处理: function aaaa(i,filename){ alert(i); var filepath = document.getElementById("picture"+i).value; alert(filepath); window.location.href ='pictures.do?method=sethead&filepath='+filepath+'&filename='+filename; parent.location.reload();//刷新父页面 } 这是双击事件function
在表单提交刷新页面可以通过多种方式实现,具体取决于表单提交的方式以及开发者的控制需求。以下是几种常见的实现方法: ### 使用表单提交刷新页面 如果表单使用传统的 `POST` 方法提交,并且希望在提交刷新当前页面,可以利用服务器端返回的响应来触发页面刷新。例如,在服务器端返回的响应中设置重定向(`302 Found` 或 `303 See Other`),浏览器会自动跳转到新的 URL,从而实现页面刷新。 ```html <form action="/submit" method="post"> <input type="text" name="username" /> <input type="submit" value="提交" /> </form> ``` 服务器端(以 Node.js + Express 为例): ```javascript app.post('/submit', (req, res) => { // 处理表单数据 res.redirect('/'); // 提交后跳转到首页,触发页面刷新 }); ``` 通过这种方式,用户提交表单后会被重定向到指定页面,浏览器加载新页面,从而实现刷新效果 [^3]。 ### 使用 JavaScript 提交表单并手动刷新页面 如果使用 JavaScript 提交表单(如 `fetch` 或 `XMLHttpRequest`),可以在提交成功后手动刷新页面。这种方法适用于异步提交表单数据并希望在完成后刷新页面的场景。 ```html <form id="myForm"> <input type="text" name="username" /> <button type="submit">提交</button> </form> ``` JavaScript 示例: ```javascript document.getElementById('myForm').addEventListener('submit', function (e) { e.preventDefault(); // 阻止默认提交行为 const formData = new FormData(this); fetch('/submit', { method: 'POST', body: formData }) .then(response => { if (response.ok) { location.reload(); // 提交成功后刷新页面 } }) .catch(error => { console.error('Error:', error); }); }); ``` 该方法通过 `location.reload()` 强制刷新当前页面,确保用户看到最新的数据或状态 [^2]。 ### 使用 iframe 提交刷新页面 在使用 `<iframe>` 实现无刷新提交的场景中,也可以通过在 `<iframe>` 加载完成后执行 `window.parent.location.reload()` 来刷新父页面。这种方式适用于需要在不刷新页面的情况下提交数据,但最终仍需要更新主页面内容的场景。 主页面: ```html <form action="submit_url" method="post" target="hidden_frame"> <input type="text" name="username" /> <input type="submit" value="提交" /> </form> <iframe name="hidden_frame" id="hidden_frame" style="display:none;"></iframe> ``` 提交页面iframe 加载的页面): ```html <script> window.parent.location.reload(); // 提交完成后刷新页面 </script> ``` 通过在 `<iframe>` 中执行脚本,可以触发主页面刷新,从而实现页面状态更新 [^1]。 ### 总结 上述方法分别适用于不同的开发场景:服务器端重定向适用于传统表单提交;JavaScript 异步提交刷新适用于现代前端应用;iframe 提交刷新则适用于需要兼容旧浏览器或特殊交互需求的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值