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

お世話になっております。
以下のコードで開いた画面を後続のコードで閉じるにはどうしたらよいでしょうか。
var a = document.createElement("a");
a.target = '_blank'; /* _selfなら自分の内部に暗黙の内に開く */
a.click();

セルフの指定をすれば良いのですが、色々理由がありまして、
あえて_blank を使う必要があります。
これで新しい白紙の画面(無題)が開くのですが、
この画面を今はマウス操作で×ボタンを押して閉じています。

引き続き後続のステップで開いたとたんに閉じるようにしたいのですが、
JavaScriptは素人な為どうすればよいかわかりません。
クリックの後にどのようにコードを記述すれば、
開いた画面を閉じることが出来るでしょうか。

どうぞよろしくお願いします。

A 回答 (2件)

_blankはキビシイね、なんか適当な名前をつけちゃだめなの?



<script>
window.addEventListener('DOMContentLoaded', function(e){
document.querySelector('#open').addEventListener('click',function(e){
var a = document.createElement("a");
a.href = "about:blank";
document.querySelector('body').appendChild(a);
a.target = 'nWin';
a.click();
});
document.querySelector('#close').addEventListener('click',function(e){
var nWin=window.open("about:blank","nWin");
console.log(nWin);
if(nWin){
nWin.close();
}
});
});
</script>

<input type="button" value="open" id="open">
<input type="button" value="close" id="close">
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
実は a.href ではメール文を作成すると言う指定を入れています。
a.href = "mailto:aa@bb.com.jp?subject=test&body=本文";
と言った感じです。このため a.href でメールを開かねばならず、
a.target = '_blank'; で『無題』の画面を閉じなければならないのです。
アドバイスいただいた方法『適当な名前をつける』で試してみようと思います。
名前をつけて、その名前で閉じると言う案は思いつきませんでした。
試してみます。どうもありがとうございました。

お礼日時:2019/01/30 23:05

パソコンですか?スマホですか?


ウィンドウがtarget=”_blank”で開いたウィンドウの時、と条件を追加により、スマホ用ブラウザでも、target=”_blank”で開いたウィンドウの時はウィンドウを閉じる事が出来ます。
https://adbeneq.com/myblog/webdesign/1162/
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
最近ではスマホがあるんですね。以後、質問の仕方に気をつけます。
実は a.href ではメール文を作成すると言う指定を入れていまして、
アドバイスのあったサイトも参照して onClick を指定してみたのですが、
メールを開くのと、onClickでウィンドウを閉じるのがうまく動作しませんでした。
別な方法を模索してみます。ありがとうございました。

お礼日時:2019/01/30 22:53

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