: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
document.addEventListener('DOMContentLoaded', function () {
const wrappers = document.querySelectorAll('.netsposts-screen.ajax_load');
for(const parentPostWrapper of wrappers) {
attachNavigationClickListeners(parentPostWrapper);
function setWrapperId(wrapper){
const id = Math.round(Math.random() * 1000) + 1;
wrapper.setAttribute('data-id', id);
function attachNavigationClickListeners(wrapper){
const paginationLinks = wrapper.querySelectorAll('.netsposts-paginate a.page-numbers');
for (const link of paginationLinks) {
link.addEventListener('click', handlePaginationLinkClick);
function handlePaginationLinkClick(e){
const url = link.getAttribute('href');
const parent = link.parentElement.parentElement.parentElement;
function loadPosts(url, parentScreen){
showPreloader(parentScreen);
let currentPostWrapper = parentScreen.querySelector('.netsposts-block-wrapper.current');
const parentScreenId = parentScreen.getAttribute('id');
if(isPageLoaded(parentScreenId, url)){
currentPostWrapper.classList.add('hidden');
currentPostWrapper.classList.remove('current');
* Assign and show the new page.
const pageId = pages[parentScreenId][url];
const selector = ".netsposts-block-wrapper[data-id='" + pageId + "']";
const nextParentPostWrapper = parentScreen.querySelector(selector);
nextParentPostWrapper.classList.remove('hidden');
nextParentPostWrapper.classList.add('current');
hidePreloader(parentScreen);
getPageDoc(url).then(function (pageDoc) {
const postWrapperSelector = '#' + parentScreenId + ' > .netsposts-block-wrapper';
const wrapper = pageDoc.querySelector(postWrapperSelector);
if(!pages[parentScreenId]){
pages[parentScreenId] = {};
pages[parentScreenId][url] = setWrapperId(wrapper);
currentPostWrapper.classList.add('hidden');
currentPostWrapper.classList.remove('current');
const preloader = parentScreen.querySelector('.netsposts-preloader');
parentScreen.insertBefore(wrapper, preloader);
attachNavigationClickListeners(wrapper);
hidePreloader(parentScreen);
//window.history.pushState({}, document.title, url);
function showPreloader(parent){
const preloader = parent.querySelector('.netsposts-preloader');
preloader.classList.remove('hidden');
function hidePreloader(parent){
const preloader = parent.querySelector('.netsposts-preloader');
preloader.classList.add('hidden');
function isPageLoaded(screenId, url){
return pages.hasOwnProperty(screenId) && pages[screenId].hasOwnProperty(url);
function getPageDoc(url){
return loadPage(url).then(pageContent => {
const loadedDoc = document.implementation.createHTMLDocument();
loadedDoc.documentElement.innerHTML = pageContent;
return fetch(url).then(response => response.text());