jQuery load() 未正确加载内容

我正在尝试使用 html5window.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 那样的速度。


撒科打诨
浏览 216回答 2
2回答

互换的青春

像这样通过 AJAX 加载您的页面并使用replaceWith:$.get( url, function( data ) {&nbsp; &nbsp; //data is the new page html&nbsp; &nbsp; document.open();&nbsp;&nbsp; &nbsp; document.write(data);&nbsp;&nbsp; &nbsp; document.close();});更新我强烈建议改用 Github 中的这个库:平滑状态

白衣染霜花

我尝试了很多选择,但我在这段代码中找到了我的解决方案function goto(event,el){&nbsp; &nbsp; url=el.href;&nbsp; &nbsp; event.preventDefault();&nbsp; &nbsp; window.history.pushState('','',url);&nbsp; &nbsp; $.get(url, function(data) {&nbsp; &nbsp; &nbsp; &nbsp; var head=data.match(/<head[^>]*>[\s\S]*<\/head>/gi);&nbsp; &nbsp; &nbsp; &nbsp; $('head').html(head[0]);&nbsp; &nbsp; &nbsp; &nbsp; $('#content').html($(data).find('#content').html());&nbsp; &nbsp; });&nbsp;}你有比这更好的解决方案吗,这个解决方案在所有浏览器中的工作原理是否相同,以及速度/加载时间/性能问题是否存在。我的主要目的是加载新页面内容而无需像 twitter 或 facebook 那样立即刷新页面任何建议或帮助将不胜感激
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript