

asp.net(VB)で作成した画面をiPhoneのsafariで開いているのですが、  
"終了する"ボタンを押したらタブを消したいと考えています。  
ボタンを押すとウィンドウが現れて"終了します"とは表示されるのですが、  
"閉じる"を押してもタブは消えず元の画面に戻るだけという状態です。

デザイナー側のプログラム

[code]

    <div>
    <asp:Button ID="btn_terminate" runat="server" Text="終了する" CssClass="button_shared_preference" />
    </div>
    
[/code]

コード側のプログラム

[code]

        Protected Sub btn_terminate_Click(sender As Object, e As EventArgs) Handles btn_terminate.Click
            ClientScript.RegisterClientScriptBlock(Me.GetType(), "key", "window.alert('終了します');window.close()", True)
        End Sub
    
[/code]

補足 2022-02-18  
大まかな作業の流れはこちらになります。  
１．URLの記載されたQRをiPhoneのカメラで読み込んでサイトにアクセスする  
サイトロード時に特別な処理は行っていません  
２．サイト内でチェックや入力などを行う  
※重要なことではないので詳細は割愛します  
３．”終了する”ボタンを押すと内容をサーバ内に書き出して表示されているウィンドウを閉じる  
表示されているウィンドウとは"1"でアクセスして"2"で色々と突いたサイトの事です  
困っている部分は、"ウィンドウを閉じる"部分です。  
サーバ内への書き出しは実装済みです。


CC BY-SA 4.0
2022-02-17T03:13:33.373
86406
2022-02-18T01:49:28.137
2022-02-18T01:49:28.137
49304
49304
question
asp.net
asp.net(VB)でボタンを押したら画面を閉じるようにしたい


iPhone の Safari とかでどうなるか不明ですか、普通ブラウザでそういうスクリプトでは閉じないのでは？
JavaScriptで閉じることができるウィンドウは、JavaScriptで開かれたウィンドウのみのはずです。

**【追記 2022/2/18 10:35】**

質問欄に「補足 2022-02-18」を追記されたようですので、それに対するレスを以下に追記します。

> １．URLの記載されたQRをiPhoneのカメラで読み込んでサイトにアクセスする  
>  サイトロード時に特別な処理は行っていません

それは多分ブラウザのアドレスバーに問題のページの URL を入力して GET 要求をかけたことと同じと理解します。そうであれば、kunif
さんが質問欄で紹介された記事にある、

[code]

    window.open('about:blank','_self').close();
    
[/code]

以外に手はなさそうですが、それで期待通りにクローズできるか否かはブラウザ依存です。iPhone の Safari
でどうなるか自分にはその環境はないので不明です。試してみてはいかがですか？

ちなみに、自分の環境で試した限りですが、それでクローズできたブラウザは IE11, Firefox 97.0.1 のみです。

Chrome 98.0.4758.102, Edge 98.0.1108.56, Opera 84.0.4316.14 は close
は無視されるようで、open した about:blank が残ってしまいます。

iPhone の Safari
で上のスクリプトを使ってもダメなら、そのような裏技的な手段は諦めて、ユーザーが自ら操作してクローズしてもらえるように正攻法で考えることをお勧めします。


CC BY-SA 4.0
2022-02-17T03:55:51.417
86408
2022-02-18T01:35:29.753
2022-02-18T01:35:29.753
43387
43387
86406
answer