ブラウザ内の他のタブを閉じずに、ブラウザ内の現在アクティブなタブを閉じるリンクをWebページに作成したいです。
ユーザーが閉じるリンクをクリックすると、「はい」と「いいえ」の2つのボタンでユーザーに確認を求める警告メッセージが表示されます。ユーザーが「はい」をクリックした場合はそのページを閉じ、「いいえ」の場合は何もしません。
どうすればそれができますか?助言がありますか?
これを行うにはJavascriptが必要になります。 window.close()
:を使用してください。
close();
注: 現在のタブが暗黙的に指定されています。これは同等です:
window.close();
別のウィンドウを指定することもできます。
そう:
function close_window() {
if (confirm("Close Window?")) {
close();
}
}
hTMLの場合:
<a href="javascript:close_window();">close</a>
または
<a href="#" onclick="close_window();return false;">close</a>
このイベントのデフォルトの動作を防ぐために、ここでreturn false
を使用します。それ以外の場合、ブラウザはそのURLにアクセスしようとします(それは明らかにそうではありません)。
これで window.confirm()
ダイアログボックスのオプションはOKとキャンセルになります(はいといいえではありません)。あなたが本当に欲しいならはいといいえ)あなたはある種のモーダルJavascriptダイアログボックスを作る必要があるでしょう。
注: 上記とはブラウザ固有の違いがあります。 Javascriptで(window.open()
経由で)ウィンドウを開いた場合は、javascriptでウィンドウを閉じることができます。 Firefoxでは他のウィンドウを閉じることはできません。 IEがユーザーに確認を求めます。他のブラウザは異なる場合があります。
これを試して
<a href="javascript:window.open('','_self').close();">close</a>
このメソッドはChromeとIEで機能します。
<a href="blablabla" onclick="setTimeout(function(){var ww = window.open(window.location, '_self'); ww.close(); }, 1000);">
If you click on this the window will be closed after 1000ms
</a>
私が言うことができる限り、それはもはやChromeやFireFoxでは不可能です。 IE(少なくともEdge以前)でも可能です。
可能です。私はこれについてネット全体を検索しました、しかし私がマイクロソフトの調査の1つを取ったとき、私はついに答えを得ました。
これを試して:
window.top.close();
これは現在のタブを閉じます。
以下はChrome 41で私のために働きます:
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
実際のWebページを開くことを含む、FFのためのいくつかのアイデアを試してみましたが、何もうまくいかないようです。私が理解している限りでは、JSがreallyで開いていれば、どのブラウザでもxxx.close()でタブやウィンドウを閉じることができます。そのタブ。
考えてみるとそれは理にかなっています - ユーザはJSが便利な履歴を持つタブやウィンドウを閉じたくないかもしれません。
これも試してください。 3つの主要ブラウザすべてで私のために働いています。
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
FF 18とChrome 24で正常にテストされました。
頭に入れる:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
クレジットは Marcos J. Drake に行きます。
まだこのページにアクセスしている人は、スクリプトORで開いているタブを閉じるには、ターゲット_blankの付いたHTMLのアンカータグを使用する必要があります。どちらも閉じることができます。
<script>
window.close();
</script>
<button class="closeButton" style="cursor: pointer" onclick="window.close();">Close Window</button>
これは私のために仕事をしました
少し遅れましたが、これは私が見つけたものです...
window.close()
は、あなたがclose()
しようとしているウィンドウがwindow.open()メソッドを使ったスクリプトによって開かれた場合にのみ機能します(IEは例外です)。
あなたはコンソールエラーを得るでしょう:スクリプトはスクリプトによって開かれなかったウィンドウを閉じないかもしれません。エラーとして、他には何もない。
ページがスクリプトから開かれたかどうかを知るためにURLに一意のパラメータを追加することができます(時間のように) - ただし、単なるハックでネイティブ機能ではないため、失敗になる場合もあります)。
私はページがopen()から開かれたかどうかを知る方法を見つけることができませんでした、そしてcloseはスローされずエラーは起きません。 これは"test"を表示しません:
try{
window.close();
}
catch (e){
console.log("text");
}
これは同じことを解決する1つの方法で、このようなJavaScript関数を宣言します。
<script>
function Exit() {
var x=confirm('Are You sure want to exit:');
if(x) window.close();
}
</script>
以下の行をHTMLに追加して、<button>
を使用して関数を呼び出します。
<button name='closeIt' onClick="Exit()" >Click to exit </Button>
私はここに遅刻するかもしれませんが、これはブラウザによって妨げられています。
あなた自身が何度も何度もウィンドウを閉じようとしていて、それがあなたの質問からの " もしないなら "の部分をしているので閉じないのではないか。
これは確かにいらいらさせるでしょう!