Я хотел бы решить следующую проблему: учитывая ссылку на веб-странице, я хотел бы заменить содержимое указанного элемента div
содержимым элемента div
другого стр. Скажем, просто загрузите текст «Стенд на плечи гигантов» со страницы Google Scholar в мой существующий элемент 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>
Я включил window.history
для того, чтобы изменить URL в адресной строке, а также дать возможность пользователю восстановить предыдущее состояние сети страницы без нового контента.
Теперь у меня есть два вопроса:
- Замена
<code>div</code>
элемента, кажется, не работает, так как вся страница с WhatIsMyIP загружена. - При использовании Chrome вся страница загружается снова и снова с самого начала. Я думаю, событие
window.onpopstate
запускается непрерывно.
Благодарим за помощь!
Возможно, проблема с pushState может быть решена с помощью плагина, упомянутого в этом ответе: http: // stackoverflow.com/questions/5210034/history-pushstate –
Я думаю, что одним из источников проблемы в вашей реализации является то, что «$ .get» может занять слишком много времени для отмены события. Таким образом, «возврат ложных» может зайти слишком поздно. Кто-нибудь видел это? – jehon