我想解決以下問題:給定網頁上的鏈接,我想用指定的div
元素的內容替換另一個元素的div
元素的內容頁。說,只需將Google學術搜索頁面中的文字「站在巨人的肩膀上」加載到我現有的div
元素中即可。JavaScript:用另一個HTML的內容替換元素
到目前爲止,如果實施下面的例子:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<a href="http://www.whatsmyip.org/">Click me</a>
<div id="myid">Text to be replaced</div>
<script type="text/javascript">
$("a").click(function() {
$.get(this.href, function(data) {
$("#myid").replaceWith($(data).find("#fb-root"));
});
previous_page = location.href;
window.history.pushState({page: $(this).index()}, $(this).html(), $(this).attr('href'));
return false;
});
window.onpopstate = function(event) {
location.reload();
}
</script>
</body>
</html>
我包括爲了改變在地址欄中的URL,並允許用戶恢復網絡的先前狀態window.history
沒有新內容的頁面。
現在,我有兩個問題:
- 更換
<code>div</code>
元素似乎沒有工作,因爲從WhatIsMyIP整個頁面加載。 - 使用Chrome時,整個頁面會從頭開始重複加載。我認爲,事件
window.onpopstate
被連續觸發。
感謝您的幫助!
也許你的pushState問題可以通過使用該答案中提到的插件來解決:http:// stackoverflow。com/questions/5210034/history-pushstate – 2011-12-16 11:08:35