window.closeについて

[上に] [前に] [次に]
ohhashi 1998/04/02(木) 17:06:14
初心者なものでちょっと変な質問をしますが

JavaScriptでwindow.closeを発行した場合、
確認のダイアログが表示されますが
この確認ダイアログを表示せずにwindowを
closeさせる方法はあるのでしょうか?

また、NNでは、初めに起動したHTML内で
window.closeを発行した時は、確認ダイアログ
が表示されずにwindowがcloseしますが
ボタンなどを押下した後に表示されるHTML内に
window.closeを記述すると確認ダイアログが
表示されてしまいます。
これも表示させない方法がありましたらご教示
願います。

TAM [E-Mail] 1998/04/08(水) 17:43:07
アンカーやフォームでTARGET="WINTITLE" などを使って新たにウィンドウを
オープンしていないでしょうか?
open()関数でウィンドウを新たにオープンした場合は、close()しても確認ダイアログは
表示されません。
HTMLの機能でオープンしたウィンドウをJavaScript関数がクローズしようとしているので、
確認ダイアログが表示されるのだと思います。

TAM 1998/04/09(木) 17:44:47
追加です。

新たにウィンドウをオープンするのではなく、同一画面にページを表示した場合です。
この場合、元のページと同じ URL のページに移動したとしても、close() した時点で
確認ダイアログ(confirm)が表示されます。

理由は、「history objects に一つでも履歴がたまると、close() した時点で
確認ダイアログを表示する」という、JS のセキュリティポリシーだからです。
最初のページを読み込んだ時点では、通常  history はない状態ですが、
アンカーやフォームなどを使ってページを移動した場合、history に履歴が生成されます。

ボタンなどからコールされるイベントプロシジャに Location.replace() を記述して
任意のページに移動すれば、history に履歴は生成されません。
この方法を使えば、OK です。
ただし、コーディングに自由度がなく、大変ではないでしょうか。

その他に、「署名付き JS」を利用する手もあるかも...

ohhashi 1998/04/10(金) 11:35:25
[[解決]]
貴重なご意見ありがとうございました。
さっそく試してみます。

[上に] [前に] [次に]