У меня есть таблица, которая заполняется результатами после того, как пользователь их отфильтровал. Каждый результат приводит пользователя на страницу с подробностями. Я хочу, чтобы пользователь go вернулся к результатам поиска без сброса таблицы. Кнопка «назад к результатам» на странице сведений имеет следующее значение: JavaScript:
document.getElementById('back').onclick = function(e){
const newpage = window.open("index.html?fromDetail=yes", "_self");
newpage.onload = advancedSearchFromDetail()
}
И это функция JavaScript, которая выполняется после достижения целевой страницы:
function advancedSearchFromDetail () {
event.preventDefault()
var table = $('#mainTable').DataTable()
table.clear()
// Get the parameters in the sessionStorage
const pe1id = sessionStorage.getItem('pe1id');
const pe2id = sessionStorage.getItem('pe2id');
const plid = sessionStorage.getItem('plid');
const dateFrom = sessionStorage.getItem('dateFrom');
const dateTo = sessionStorage.getItem('dateTo');
const includeUndated = sessionStorage.getItem('includeUndated');
const data = new FormData()
data.append('pe1id', pe1id)
data.append('pe2id', pe2id)
data.append('plid', plid)
data.append('dateFrom', dateFrom)
data.append('dateTo', dateTo)
data.append('includeUndated',includeUndated)
const oReq = new XMLHttpRequest();
oReq.open("post", 'modules/advanced_search.xq', true);
oReq.send(data);
oReq.onreadystatechange = function () {
if (oReq.readyState === XMLHttpRequest.DONE && oReq.status === 200) {
const result = JSON.parse(oReq.responseText);
[populate the table]
}
}
Любопытно, что этот код работает при запуске с главной страницы. Все параметры есть и отправляются правильно. Ответ, тем не менее, пустой, пустой. Если дважды щелкнуть данные XHR в консоли моего браузера, чтобы открыть файл .xq с параметрами, я даже получу результаты JSON на новой странице! Что я пропускаю? Я не могу понять, почему это не работает, если есть параметры, есть вызов XHR, я получаю 200 статус и все такое.
Редактировать
Если я Запустите функцию в консоли браузера, она работает. Связано ли это с тем, что я вызываю функцию с newpage.onload = advancedSearchFromDetail()
тогда? Если да, как я могу обойти это?