9

メニューバーやアドレスバーなどのないウィンドウで Web アプリケーションを実行したいのですが、Default.html ページがあり、このページで [アプリケーションの実行] ボタンをクリックしますwindow.open。パラメーターを使用window.openして「AutoClose.html」を開くことにより、現在のウィンドウ_self

Default.html

<html>
<head>
<script type="text/javascript">
    function runApp() {
        // Open my application
        window.open('Application.html', null, 'status:no;dialogHide:true;help:no;scroll:yes;center=yes;');

        // Close this window
        window.open('AutoClose.html', '_self');
    }
</script>
</head>
<body>
    <input type="button" value="Run Application" onclick="runApp();" />
</body>
</html>

AutoClose.html

<html>
<head>
<script type="text/javascript">
    window.close();
</script>
</head>
<body></body>
</html>

私のアプリケーションは IE、Firefox、および Chrome をサポートする必要があり、私のコードは IE と Chrome で正常に動作しますが、「スクリプトによって開かれていないウィンドウをスクリプトで閉じることはできません」という警告のため、Firefox の最初のウィンドウを閉じることができません。Firefox では AutoClose.html を開きますがwindow.close()、このページを呼び出すと、「スクリプトによって開かれなかったウィンドウをスクリプトで閉じられない可能性があります」という警告が表示され、ウィンドウが閉じられません。ちなみに、私のアプリケーションウィンドウは問題なく開かれています(それについては問題ありません)。

パラメータトリックを使用window.open()すると_self、Firefox では機能しないようです。私の目標は、メニューバーやアドレスバーなどのないウィンドウでアプリケーションを実行することです.

  1. window.open()(少なくとも Firefox の場合)を使用せずにアドレスバー、メニューバーを非表示にする方法はありますか? その後、実行する必要はありませんwindow.close()
  2. Firefox で「スクリプトによって開かれなかったウィンドウをスクリプトが閉じない可能性があります」という警告を抑制する設定はありますか? 「スクリプトによって開かれていないウィンドウを閉じることをスクリプトに許可する」設定は素晴らしいでしょう (:
  3. window.close()Firefox で「javascript を使用したスクリプトによって開かれなかったウィンドウ」を機能させる方法はありますか?
  4. または、他の提案はありますか (:

前もって感謝します。

更新: これはバンキング アプリケーションであり、私は単なる開発者であり、意思決定者ではありません。つまり、ある種のアナリストは、アプリケーションがこのように機能することを望んでいます。そして、私はそれを疑問視していません。したがって、「あなたがやろうとしていることはすべて完全に間違っています」という答えはあまり役に立ちません。

4

4 に答える 4

11

Firefoxで現在のウィンドウを開いていないため、閉じることができません。AutoClose.htmlをロードしてもかまいません。

しかし、このウィンドウを使用したビジネス全体は無意味です。ほとんどの人はブラウザを新しいタブで新しいウィンドウを開くように設定しており、タブウィンドウでメニューバーなどを防ぐことはできません。

個人的には、アプリケーションを使用したという理由だけでウィンドウを閉じた場合、非常にイライラします。

これは、ユーザーが開いている唯一のウィンドウである可能性があります。その場合は、ブラウザーを閉じただけです。彼らが押し返したいのかもしれません、そしてタブを閉じることは彼らを苛立たせます。

Firefoxからのこのエラーは正しいです。それがChromeで機能する場合、それは重大なバグであり、報告する必要があります。

于 2012-09-07T08:54:05.393 に答える
6

単に、

open(location, '_self').close();
于 2014-06-20T05:59:25.887 に答える
1

これは私にとってはうまくいきました。

jQuery UI ダイアログでボタンをクリックしたときにウィンドウを閉じるために使用しました。

open(location, '_self').close();
于 2014-07-15T03:12:45.377 に答える
1

基本的な問題は、要件設定者があなたに求めていることが Firefox によって明示的にブロックされていることです。

  1. ユーザーの既存のブラウザー ウィンドウで UI を非表示にする方法はありません。これは、ユーザーに敵対的であり、フィッシャーのお気に入りのツールであるためです。
  2. スクリプトからユーザーの既存のウィンドウを閉じる方法はなく、その過程でユーザーのセッション履歴がすべて失われます。

基本的に、ユーザーは銀行以外のものをブラウザーに持っています。したがって、そうでないと仮定することは、多かれ少なかれ失敗する運命にあります。

不当な要求を押し返す方法はありますか?

于 2012-09-07T12:18:35.203 に答える