アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在ページから次のウインドウを開く際に次のウインドウを開いたら、元のページ(現在ページ)を閉じる方法は、次のウインドウ内に、
<METAタグ内の<scriptで
window.opener.window.close();
とすればよいのでしょうか?
それとも、OnLoadで上のwindow.opener.window.close()とすれば良いのでしょうか?

また、現在ページの段階から次のページを呼んだ瞬間に現在ページを閉じる方法はあるのでしょうか?

定石があるのでしたら知りたいです。

A 回答 (1件)

私が実現している方法です。


呼出元ファイルに追加しています。
まずは、
ret = window.open('../aaaa,html','','location=no,menubar=no,toolbar=no, scrollbars=1,status=no,resizable=yes,top=0,left=0,height=' + hs + ',width=' + ws);
if((ret == null) || (ret.closed == true))
{
alert("ポップアップブロッカーが機能しました。\nポップアップブロッカー回避操作を行って下さい。");
}
// 画面を強制終了する
ForceClose();

ForceClose();は、以下のように、なっています。
//********************************************//
// 強制画面終了 //
//********************************************//
var busy=false;
function ForceClose(){
if(!busy){
busy=true
if(navigator.appName=="Netscape"){
/*
window.openで開かれたウィンドウでは警告が出ない
このウィンドウ自体がwindow.openで開いたものだと思わせるようなイメージ
*/
window.open("","_top")
window.close()
}else{
if(document.all&&(navigator.userAgent.match(/MSIE (\d\.\d)/),RegExp.$1)>=5.5)
{
/*
IE5.5以降も考え方は同じ
IE6.0では普通にclose()だけでも警告なし
*/
var w=window.open("","_top")
w.opener=window
w.close()
}
else
{
/* IE4,IE5.0は[いいえ]を選択したらまた同じダイアログを表示し続ける*/
window.close()
var timer=setTimeout("busy=false;forceclose()",500)
}
}
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!