JavaScript:子ウィンドウから親ウィンドウを再読み込みさせる方法

この記事では、Webアプリケーションにおける子ウィンドウからの親ウィンドウ更新方法について詳しく説明します。特にJavaScriptとjQueryを使用した具体的なコード例を提供し、親ウィンドウの検索フォームを自動的にsubmitする技巧を紹介します。

ことの起こり

Webの画面では、新規入力をしようとすると、別ウィンドウ=子ウィンドウが開いて入力し、登録ボタンを押すと、子ウィンドウが閉じる仕組みがある。

子ウィンドウが閉じるだけなら問題ないが、一覧表があって、子ウィンドウが閉じたら、登録された内容を反映したいときがある。

 

子ウィンドウが閉じるときに、JavaScript

window.opener.location.reload();
window.close();

とすれば、 親ウィンドウは再読込みされて、子ウィンドウは閉じられる。

 

これで問題なければいいが、今回は親ウィンドウ側に検索機能があって、POSTパラメータで処理をしていた。

そのため、同じことをすると、再読み込みの警告が表示されて、いちいちメッセージのOKをクリックしなくてはならなかった。

GETパラメータで処理していれば、発生しない現象なんだけど。

 

対処方法

対処の仕方は簡単で、子ウィンドウから親ウィンドウの検索のformをsubmitすれば、警告は表示されないで、検索が行われる。

JavaScriptは、

window.opener.$("#search").submit();
window.close();
とすれば子ウィンドウから親ウィンドウのformをsubmitできる。
jQueryを使う書き方で書いたが、getElementById()でも大丈夫なはずだ。
 
 
 こういった内容は、自分のネタ帳に入れておくと、忘れたときに役に立つ。

转载于:https://www.cnblogs.com/j3eee/p/3804891.html

「KARTE v2标签迁移」html如何迁移,怎么判断哪里需要迁移 需要迁移的代码 <script type="text/javascript"> try{ var ua = navigator.userAgent.toLowerCase(); var ver = navigator.appVersion.toLowerCase(); if(ua.indexOf('msie') > -1 && ((ver.indexOf('msie 5.') > -1) || (ver.indexOf('msie 6.') > -1) || (ver.indexOf('msie 7.') > -1) || (ver.indexOf('msie 8.') > -1) || (ver.indexOf('msie 9.') > -1))){ console.log('SKIP WITHDESK TAG'); }else{ document.scripts[document.scripts.length-1].parentNode.appendChild(document.createElement('script')).src="https://js.withdesk.com/402bf15a-1538-4932-92d7-cf44e3492649"; } }catch(e){} </script> <!--- ///Withdesk ---> <!-- KARTE/// --> <script type="text/javascript"> try{ var ua = navigator.userAgent.toLowerCase(); var ver = navigator.appVersion.toLowerCase(); if(ua.indexOf('msie') > -1 && ((ver.indexOf('msie 5.') > -1) || (ver.indexOf('msie 6.') > -1) || (ver.indexOf('msie 7.') > -1) || (ver.indexOf('msie 8.') > -1) || (ver.indexOf('msie 9.') > -1))){ console.log('SKIP KARTE TAG'); }else{ (function(){var t,e,n,r,a;for(t=function(){var t;return t=[],function(){var e,n,r,a;for(n=["init","start","stop","user","track","action","event","goal","chat","buy","page","view","admin","group","alias","ready","link","form","click","submit","cmd","emit","on","send","css","js","style","option","get","set","collection"],e=function(e){return function(){return t.push([e].concat(Array.prototype.slice.call(arguments,0)))}},r=0,a=[];r<n.length;)t[n[r]]=e(n[r]),a.push(r++);return a}(),t.init=function(e,n){var r,a;return t.api_key=e,t.options=n||{},a=document.createElement("script"),a.type="text/javascript",a.async=!0,a.charset="utf-8",a.src=t.options.tracker_url||"https://static.karte.io/libs/tracker.js",r=document.getElementsByTagName("script")[0],r.parentNode.insertBefore(a,r)},t},r=window.karte_tracker_names||["tracker"],e=0,n=r.length;n>e;e++)a=r[e],window[a]||(window[a]=t());tracker.init("95fca66c5122213a3a8dd15548835818")}).call(this); } }catch(e){}
07-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值