Вы бы просто использовали:
unsafeWindow.iDisplayLength = -1;
Нет необходимости в этом changeTheDefaultViewVarLol()
материале.
Однако, это не даст желаемого эффекта, если iDisplayLength
используется страницей сразу после того, как страница установит его на 25.
Возможно, вам придется вызвать функцию JS, чтобы применить новое значение. Ссылка на целевую страницу, если это так.
Обновление для дополнительной информации о странице:
Что вы на самом деле пытаетесь сделать, так это вызвать функцию «Показать все записи» на этой странице.
Итак, не думайте с точки зрения выбора переменных JS, думайте с точки зрения активации того, что JS связано с этим <select>
.
Для обычной страницы, аналогичной той, которую вы указали , код такой будет делать это:
var showAllOpt = document.querySelector ('#main_table_length select option[value="-1"]');
var changeEvent = document.createEvent ("HTMLEvents");
if (showAllOpt) {
showAllOpt.parentNode.selectedIndex = showAllOpt.index;
changeEvent.initEvent ("change", true, true);
showAllOpt.parentNode.dispatchEvent (changeEvent);
}
НО, эта страница AJAX - в нужной таблице еще долго после того, как страница «загружается». Итак, необходим дополнительный шаг, например:
var showAllEntriesSelect = setInterval ( function() {
setSelectValueWhenitLoads (
"#main_table_length select option",
"-1",
showAllEntriesSelect
);
}
, 200
);
function setSelectValueWhenitLoads (cssSelector, targetValue, timerVar) {
var showAllOpt = document.querySelector (
cssSelector + '[value="' + targetValue + '"]'
);
if (showAllOpt) {
clearInterval (timerVar);
showAllOpt.parentNode.selectedIndex = showAllOpt.index;
var changeEvent = document.createEvent ("HTMLEvents");
changeEvent.initEvent ("change", true, true);
showAllOpt.parentNode.dispatchEvent (changeEvent);
}
}