jQuery $ (window) .unload () завершается ошибкой при попытке закрыть окно - PullRequest
0 голосов
/ 15 апреля 2020

Я заменяю модель windows полноэкранными оверлеями для небольших устройств. Предполагая, что $ (window) .hide () излишне сохраняет это окно в памяти, я пытаюсь использовать $ (window) .unload (), который не работает должным образом. Я использую переменную PHP для имени сценария, так как различные сценарии будут использовать эту утилиту.

Изучая немного больше, я обнаружил, что unload () устарела и, возможно, не была предназначена для использовал этот способ в первую очередь. Я не знаю, какая альтернатива может быть, кроме $ (window) .hide.

Это весь код

<?php
    session_start();
    $Script = $_REQUEST[Script];
?>
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
        <style type="text/css">
            body {width:100%; padding:0; margin:0; background-color:#FFFFFF;}
            .Leave {position:absolute; top:20px; right:20px;}
        </style>
    </head>
    <body>
        <img class="Leave" src="images/CloseButton2.png" alt="close">
        <div id="ScreenOverlay"></div>
        <script>
            $(document).ready(function()
            {
                $("#ScreenOverlay").load("<?PHP echo($Script); ?>", function(response, status, xhr)
                {
                    if(status == "error")
                    {
                        console.log(msg + xhr.status + " " + xhr.statusText);
                    }
                });
                $(".Leave").click(function()
                {
                    $(window).unload();
                });
            });
        </script>
    </body>
</html>

1 Ответ

1 голос
/ 15 апреля 2020

Какое поведение ожидается? Вы не выгружаете окно из памяти, вызывая unload. unload ожидает обработчик события

Возможно, вы хотели

$(".Leave").click(function()  $(window).close() });

при условии, что вы открыли окно самостоятельно из сценария того же источника

Нет такой вещи как window.hide

Если вы просто хотите выгрузить содержимое $("#ScreenOverlay"), тогда выполните $("#ScreenOverlay").empty() или $("#ScreenOverlay").remove()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...