質問

window.Open 関数を使用して JavaScript で新しいウィンドウを起動し、そのタブにフォーカスを設定することは可能ですか?

今日私がやっていることは次のとおりです。

            var winRef = window.open(outUrl,wName,'left='+ wX +',top=' + wY + ',height=' + wH + ',width=' + wW + args);
            try {
                // Not all window types support the focus() property.
                winRef.focus();
            }
            catch (exception) {
            }

ウィンドウは開きますが、新しいタブにはフォーカスがありません。

役に立ちましたか?

解決

ジェイ、

設計された動作が見られます。悪意のある動作の機会を制限するために、タブ付きウィンドウで実行されるスクリプトは他のタブに影響を与えることができません。

詳細については、「開発者向けのタブ ブラウジング」を参照してください。 http://msdn.microsoft.com/en-us/library/ms537636.aspx :

「同じブラウザ ウィンドウ内で複数のドキュメントを開く機能には、実用上およびセキュリティ上の一定の影響があります。[...] アクティブなタブ (フォーカスのあるタブ) は、非アクティブなタブやバックグラウンド タブで実行されるスクリプトの影響を受けることはありません。」

BR.

他のヒント

ユーザーとしては、特にリクエストしない限り、アプリケーション (またはタブ) にフォーカスを移すことは決して望んでいません。この理由から、私はブラウザ (Firefox) のタブにフォーカスが置かれないようにするためにあらゆる努力をしました。

別のタブにフォーカスを移すことはできないとかなり確信しています。

私の理解では、これはポップアップやその他の悪意のあるコンテンツがユーザーの集中力を奪うことをある程度制限するために行われています。

他の「タブ」がアプリケーションの一部である場合 (別のサイトのコンテンツではない場合)、別のウィンドウではなく、メイン コンテンツの上にあるポップアップ div に含める必要があるかもしれません。そうすることで、フォーカス、その下のコンテンツ (モーダル ダイアログの場合) の非アクティブ化、非表示などをいつでも制御できます。

ユーザーとして、これがどのように動作するかを制御できるべきではないでしょうか?

この機能によって強化されるアプリケーションを実行したい場合はどうすればよいでしょうか。その権限をドメインに付与できるべきではないでしょうか?

ちょっとした考え。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top