JavaScript — редактировать флажки на основе URL на странице назад

Я несколько часов боролся с чем-то, что звучит очень просто.
У меня есть список флажков, если флажок установлен, URL-адрес страницы изменится (чтобы сохранить параметр фильтра, чтобы вы могли поделиться URL-адрес фильтра). Он отлично работает, за исключением одного момента, когда пользователь хочет вернуться. флажки должны быть сняты.

Использование jQuery

setBoxes () — это функция;

Я старался:

function pageLoad() {
setBoxes();
}

А также

$(document).ready(function(){
setBoxes();
}

Также я добавил

 window.onunload = function(){};

Но ни одно из этих решений не сработало (функция не работает, я проверил).

После этого я подумал, что мог бы сделать это с помощью php (получить ссылку на массив, если в массиве проверено эхо), но php не запустится снова (я думаю, что он обналичен).

Есть ли вариант, который я могу попробовать, потому что я действительно не могу решить эту простую проблему.

потому что мой код очень большой, я сделал очень маленький пример http://jsfiddle.net/yzoztp05/1/ В этом случае обновление URL-адреса в jsfiddle заблокировано, поэтому оно не работает полностью.

Чтобы прояснить ситуацию, я снял видео https://www.youtube.com/watch?v=jaSc1fmaJD4&Функция = youtu.be.

код для установки моих флажков

//convert the url to array
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}

// Set the checkboxes to checked if they are in the array
function setBoxes()
{
var prijsUrl = getQueryVariable("prijs");
// first set all checkboxes on unchecked
$('.prijsFilterBox').prop('checked', false);
alert("Loaded");
if(prijsUrl != false)
{
var res = prijsUrl.split("-");

for(var i = 0; i < res.length; i++ )
{
$('.prijsFilterBox[value='+res[i]+']').prop('checked', true);
console.log("prijs = "+res[i]);
}
}
else
{
console.log("prijs = null");
}
}

Он работает, если я обновляю страницу, но не запускается, когда пользователь нажимает кнопку «Назад». Если не возможно запустить javascript на странице назад, я постараюсь сделать другой скрипт с php.

TLDR
Как я могу запустить функцию jquery на странице назад (все браузеры)?

0

Решение

Может быть возможно (и я думаю, что многие используют этот способ) иметь функцию timeOut, которая вызывается каждые 500 мсек, которая проверяет, изменился ли URL, но вместо использования «?» используйте хеш ‘#’, чтобы пользователь всегда был на одной странице, и вы можете отследить изменение URL.

Если вам нужно придерживаться ‘?’ , может быть, вы могли бы сделать что-то с window.onbeforeunload функция.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector