jQuery load()无法正确加载内容

时间:2019-05-26 02:42:27

标签: javascript jquery html browser-history html5-history

我正在尝试使用html5 window.history.pushState()函数在不刷新页面的情况下加载新链接。

一切正常,但是当我在Chrome或Firefox中打开我的inspect元素时,缺少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 :(得分:0)

像这样通过AJAX加载页面并使用CREATE TABLE [dbo].[User] ( [id] INT NOT NULL PRIMARY KEY, [name] VARCHAR(50) NOT NULL, [postcode] INT NOT NULL, [phone] INT NULL )

replaceWith

UPDATE

我强烈建议您改用Github的该库:

smoothState

答案 1 :(得分:0)

我尝试了很多选择,但是我在此代码中找到了解决方案

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());
    }); 
}

您有没有比这更好的解决方案,并且该解决方案在所有浏览器中都有效,并且在速度/加载时间/性能方面有什么问题。

我的主要目的是加载新页面内容而无需像Twitter或Facebook那样立即刷新页面

任何建议或帮助将不胜感激