1

showModalDialog()ユーザーがさまざまなソースからの記事をモーダルポップアップとして表示できるように、アプリケーションで使用しています。

FF と IE では正常に動作しますが、クロムではモーダルとして動作しません。親ウィンドウに移動して、その中の任意の要素をクリックすることができます。

IEやFFと同じように動かしたかった。

私はいくつかの回避策を見てきました

1)onfocus親ウィンドウにイベントを設定し、子に再びフォーカスします。

     <script type="text/javascript">
        setInterval(checkFocus, 10);
        var mywindow;
        function openModal() {
            var a = new Array;
            a[0] = 1;
            a[1] = 4;
            mywindow = window.showModalDialog(myurl,
      a, "dialogwidth: 1000; dialogheight: 700; resizable: yes;center : yes;");
        }

        function checkFocus() {
            if (mywindow != null && mywindow != undefined) {
                if (window.focus) {
                    mywindow.focus();
                }
            }
        }
      </script>

しかし、これは期待どおりに機能していないようです。

2)onblur子ウィンドウにイベントを設定し、再びフォーカスする

このソリューションは、いくつかのオンライン ソースから読みました。子ウィンドウのみが自分のドメインからのみカスタマイズされたページである場合、このソリューションを適用できますが、子ウィンドウは任意の任意のページurlから任意のウィンドウにできるためdomain、私の場合は適用されません。

私はそれを機能させる必要があります、誰かがこれについて私に提案できますか??

4

1 に答える 1

3

Chrome の実装には重大なバグがあります。最も重要なのは、Chrome が表示するウィンドウがモーダルではないことです ( Chromium バグ #16045を参照)。つまり、ユーザーはモーダル ダイアログを処理する前に、元のウィンドウを操作できます。

于 2013-01-18T12:47:15.057 に答える