JavaScript | Ajax загрузка страниц
Тема закрыта by
Ivlev
Причина: Помогли)
Причина: Помогли)
Всем вечер добрый
Решил сделать динамическую загрузку страниц без перезагрузки браузера.
Все работает отлично, скрипт взял тут.
Но есть несколько но:
1. Теперь не скачивает файлы
2. Спойлер работает не корректно, как только открываешь он мгновенно закрывается.
Как исключить некоторые ссылки, чтобы ajax на них не влиял?)
Решил сделать динамическую загрузку страниц без перезагрузки браузера.
Все работает отлично, скрипт взял тут.
Но есть несколько но:
1. Теперь не скачивает файлы
2. Спойлер работает не корректно, как только открываешь он мгновенно закрывается.
Как исключить некоторые ссылки, чтобы ajax на них не влиял?)
function change_ajax(link){
$('#load').html('<img src="/load.gif" style="position: fixed; top: 25%; left: 50%;transform: translateX(-50; text-align: center; background: rgba(50,50,50,0.5); padding: 5px;">');
$.post (link, {'load_ajax' : null},
function (data){
var data = $(data);
var elem = data.find('#content').html();
$("#content").html(elem);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
$('#load').html('');
}
);
}
if (history.pushState){
$(window).on('popstate', function(event){
var loc = event.location || ( event.originalEvent && event.originalEvent.location ) || document.location;
change_ajax(loc.href);
});
$(document).on('click', 'a[load != "none"]', function(e){
var link = $(this).attr('href');
if (link != null){
change_ajax(link);
var titl = $('div[title]').text();
document.title = titl;
history.pushState(link, titl, link);
e.preventDefault();
}
});
}
$(document).on('click', 'a:not([load="none"]):not(a[target="_blank"])', function(e) {});
И для a поставить тег load="none"
<a href="#" load="none">LINK</a>
Ещё нужно проверять на target="_blank"
А вообще есть библиотека PJax
https://github.com/defunkt/jquery-pjax
https://github.com/defunkt/jquery-pjax
mrcatoff (03.11.2021 в 19:41)
И для a поставить тег load="none"
Ещё нужно проверять на target="_blank"
$(document).on('click', 'a:not([load="none"]):not(a[target="_blank"])', function(e) {});
И для a поставить тег load="none"
<a href="#" load="none">LINK</a>
Ещё нужно проверять на target="_blank"
Большое спасибо) а зачем проверять на target="_blank"
Hryhorii_Ivlev, target="_blank" это открыть ссылку в новом окне, и для таких ссылок не нужно ставить ajax
mrcatoff (04.11.2021 в 00:02)
Hryhorii_Ivlev, target="_blank" это открыть ссылку в новом окне, и для таких ссылок не нужно ставить ajax
Hryhorii_Ivlev, target="_blank" это открыть ссылку в новом окне, и для таких ссылок не нужно ставить ajax
Спасибо)