2

最近、Google Chrome ブラウザーをバージョン '54.0.2840.71 m' に更新したところ、突然 JavaScript の 'onUnload' イベントが機能しなくなりました。確かに、アップグレード前は問題なく動作していました。

私のコード (後述) では、「親」ウィンドウから「子」ウィ​​ンドウを開こうとしています。子ウィンドウが閉じられた/更新されたとき (つまり、アンロード イベントがトリガーされたとき)、ウィンドウも再読み込みまたは更新する必要があります。親ウィンドウ。

parent.html ファイルのソース コード:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Parent Page</title>
    </head>
    <body>
        This is parent page. Click <a href="#" onClick="window.open('child.html', '_blank', 'toolbar=no,scrollbars=yes,resizable=no,top=150,left=250,width=500,height=500'); return false;">here</a> to open the child page.
    </body>
</html>

child.html ファイルのソース コード:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Child Page</title>
        <script type="text/javascript">
            window.onunload = refreshParent;
            function refreshParent() {
                window.opener.location.reload();
            }
        </script>
    </head> 
    <body>
        This is child page.
    </body>
</html>

このコードは、'Internet Explorer' と 'Mozilla Firefox' ブラウザの両方で適切に機能し、以前のバージョンの 'Google Chrome' でも機能しましたが、最新バージョンでは機能しませんでした。

間違ったことをしている場合はお知らせください。

ありがとうございます。それでは、お元気で!

4

1 に答える 1

0

イベントが実際に呼び出され (ブレークポイントを追加して、その中で他のことを何でもできるため)、window.opener.location.reload() がこのコミットによって無視/防止されているだけだと思います: https:// chromium.googlesource.com/chromium/src/+/8fb70277dba468aac9d2eae51e432d76667a79db

バグも作成しました ( https://bugs.chromium.org/p/chromium/issues/detail?id=660496 ) 前述の不一致によりバグがクローズされるのではないかと心配しています。

于 2016-10-28T20:41:31.933 に答える