Есть ли способ открыть ссылку на той же вкладке без обновления? - PullRequest
1 голос
/ 17 июня 2020

Итак, я пытаюсь выполнить поиск, как у Netflix, и объяснить, когда вы вводите письмо, ссылка меняется так, что это похоже на этот поиск. php? Search = * независимо от запроса * и он не обновляет sh страницу, и вот мой вывод:

поиск. php

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <form id="form">
        <input type="text" id="search" placeholder="Search">
    </form>

    <script src="js/jquery.js"></script>
    <script type="text/javascript">
        function getQueryVariable(variable) {
            var query = window.location.search.substring(1);
            var vars = query.split("&");
            for (var i = 0; i < vars.length;i++) {
                var pair = vars[i].split("=");
                if(pair[0] == variable) { return pair[1]; }
            }
            return(false);
        }

        function getSearchQuery() {
            $.ajax({
                type : 'GET',
                url : 'functions/get.php',
                data: 'search=' + getQueryVariable("search"),

                success : function(html) {
                    $("#form").html(html);
                }
            });
        }

        $("#search").keyup(function(event) {
            var query = $('#search').val();
            event.preventDefault();
            location.replace('search.php?search=' + query);
        });
    </script>
</body>
</html>

получить. php

<?php

    $search = isset($_GET['search']) ? $_GET['search'] : '';

    echo '<input type="text" id="search" placeholder="Search" value="'.$search.'">';

?>

Так что моя единственная проблема в том, что он обновляется. Есть ли способ остановить его обновление и обновить только ссылку выше?

1 Ответ

1 голос
/ 18 июня 2020

Вы переходите по URL-адресу и перезаписываете свою страницу в истории браузера с его помощью. (Я предполагаю, что это location на объекте window, к которому осуществляется доступ.)

location.replace('search.php?search=' + query);

Вы должны использовать либо window.location.hash и обрабатывать редактирование в пределах hashchanged (hashchange?) или просто отбросьте материал # и обработайте содержимое вручную.

Может, захотите вручную отследить, как это работает ... а что, если кто-то вместо этого нажмет кнопку поиска?

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