# Примеры JavaScript
ВНИМАНИЕ!
Этот документ требует базовых навыков программирования.
# Удалить не нужное и принять использование куков, режим работы "Снимок браузера".
Этот скрипт, после загрузки страницы, удаляет с нее все не нужное и нажимает кнопку "принять использование куков".
// Находит кнопку принять использование куков и нажимает ее
function cookieAccept() {
let btn = document.getElementsByClassName('cookie_accept')[0]; //элемент кнопка принять использование куков
if (btn && (btn.offsetParent != null)) KeenVision.clickElement(btn); //жмем кнопку принять использование куки
}
/**
* Удаляет у элемента parent все дочерние элементы за исключением заданных.
*
* @param {Object} parent - элемент.
* @param {Object[]} keepChildren - массив сохраняемых элементов,
* в массиве можно указать: дочерний элемент, номер дочернего элемента, начало текста innerHTML дочернего элемента
* @returns {Object} parent
*/
function rmChExcept( parent, keepChildren) {
if (parent) {
const cn = parent.children;
for (var i = cn.length -1 ; i >=0 ; i--) {
let found = false;
for (var j = 0 ; j < keepChildren.length ; j++) {
const kc = keepChildren[j];
if (kc == cn[i] || kc == i || (typeof kc === 'string' && cn[i].innerHTML && cn[i].innerHTML.startsWith(kc)) ) {
// alert(i + " tn=" +cn[i].tagName + " " +cn[i].innerHTML)
found = true;
break;
}
}
if (!found) parent.removeChild( cn[i] );
}
}
return parent;
}
/**
* Удаляет у элемента parent заданные дочерние элементы.
*
* @param {Object} parent - элемент.
* @param {Object[]} remChildren - массив удаляемых элементов,
* в массиве можно указать: дочерний элемент, номер дочернего элемента, начало текста innerHTML дочернего элемента
* @returns {Object} parent
*/
function rmCh( parent, remChildren) {
if (parent) {
const cn = parent.children;
for (var i = cn.length -1 ; i >=0 ; i--) {
for (var j = 0 ; j < remChildren.length ; j++) {
const kc = remChildren[j];
// alert(i + " tn=" +cn[i].tagName + " " +cn[i].innerHTML)
if (kc == cn[i] || kc == i || (typeof kc === 'string' && cn[i].innerHTML && cn[i].innerHTML.startsWith(kc))) {
parent.removeChild( cn[i] );
break;
}
}
}
}
return parent;
}
function kvmain() {
const main = document.getElementsByTagName('sameElement')[0];
if (!main) return "waitPageReady"; //ожидаем загрузки всех элементов страницы
//у нулевого элемента c классом "tour-desc" удаляем все дочерние элементы кроме заданных
rmChExcept(document.getElementsByClassName('tour-desc')[0], [ document.getElementById('tour-reg-list'), 'Дата:', '<strong>Система проведения:' ]);
//у нулевого элемента c классом "tour-results" удаляем все картинки
var res = rmCh(document.getElementsByClassName('tour-results')[0], document.getElementsByTagName('img'));
//у этого же элемента удаляем первый дочерний элемент, и элемент с текстом начинающимся на "Клуб: "
rmCh(res, [1, 'Клуб: ');
//через 500мс принять использование куков
setTimeout(function() {cookieAccept();}, 500);
//сделать снимок браузера через 1000мс
setTimeout(function() {KeenVision.pageReady();}, 1000);
return "waitPageReady"; //сообщаем что нужно ждать вызова KeenVision.pageReady
}
kvmain();
Для отладки используйте функцию alert