jQuery load () не загружает контент должным образом - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь загрузить новые ссылки без обновления страницы, используя функцию html5 window.history.pushState().

Все работает хорошо, но когда я открываю свой элемент проверки в Chrome или в Firefox, тег head и bodyтег отсутствует.Я не знаю почему.

Вот мой код:

function goto(event,el)
{
    url=el.href;
    event.preventDefault();
    window.history.pushState('','',url);
    $('html').load(url);
}

и новая страница загрузки выглядит так: -

<html>
<head>
<script type="text/javascript" src="http://localhost/js/jquery.js"></script>
</head>
<body>
<div id="menu">
<a href="menu1.php">Menu1</a>
<a href="menu2.php">Menu2</a>
</div>
</body>
</html>

Я действительно хочу ориентироватьсяна страницах без обновления страницы.

Как решить эту проблему, используя функцию history.pushstate() или есть какой-либо другой способ.

Моим главным мотивом является достижение такой скорости, как Facebook или Twitter.

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Я перепробовал много вариантов, но нашел свое решение по этому коду.

function goto(event,el)
{
    url=el.href;
    event.preventDefault();
    window.history.pushState('','',url);
    $.get(url, function(data) {
        var head=data.match(/<head[^>]*>[\s\S]*<\/head>/gi);
        $('head').html(head[0]);
        $('#content').html($(data).find('#content').html());
    }); 
}

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

Моя главная цель - загрузить новое содержимое страницы без обновления страницы мгновенно, как это делает твиттер или фейсбук

Любые предложения или помощь будут высоко оценены

0 голосов
/ 26 мая 2019

Загрузите свою страницу AJAX, как это, и используйте replaceWith:

$.get( url, function( data ) {
    //data is the new page html
    document.open(); 
    document.write(data); 
    document.close();
});

UPDATE

Я настоятельно рекомендую использовать эту библиотеку из Github:

smoothState

...