Здравствуйте!
1) На сайте вордстат яндекс вместе с расширением вордстатер я пробовал искать по своему шаблону фразы. Так как их много и мне надоело тыкать и читать. Скрипт сам бы отображал похожие и ускорял время сбора.
Не могу я передать в метод match() переменную new RegExp(), т.е. могу, но на выходе null
2) чтобы не терять время, я попробовал автоклик сделать. Но не кликается :(
Использовал new Event('click') и на элемент elem.dispatchEvent()
Сам код(в jsfiddle и codepen не покажу, придётся тестить в консольке):
/*let lg = function() {
console.log(...arguments);
}*/
let desc = prompt('Название:');
let ev = new Event('click'); // <-- событие клик
let addE = parent.querySelector('.normal.word-manage-button'); // на что кликнуть
let devideDesc = function(e) {
let splitDesc = e.split(' ');
let test = e.split(' ', splitDesc.length - 1);
let begin = test.join(' ');
let end = splitDesc[splitDesc.length - 1];
return {
b: begin,
e: end
}
}
let txtCls = '.b-word-statistics__td-phrase span[data-reactroot]';
let getArrRows = function(cls) {
let rows = document.querySelectorAll(cls);
let arr = [];
rows.forEach(function(e, i) {
arr[i] = e.querySelector('span:first-child');
});
return arr;
};
let arrRows = getArrRows(txtCls);
let begin = new RegExp('^' + devideDesc(desc).b, 'g'); // здесь создаю выражение начала и конца
let end = new RegExp(devideDesc(desc).e + '$', 'g');
let lightWords = function(e, i) {
let textContent = e.textContent;
let regExpB = textContent.match(begin); // передаю. и на выходе null
let regExpE = textContent.match(end ); //
console.log(regExp);
let failRegExp = textContent.match(/пол|белы|светильник/g);
let parent = e.closest('td');
if (failRegExp) {
return {
fail: failRegExp.toString(),
txt: textContent,
parent: e.closest('td'),
};
}
if (regExpB && regExpE) {
parent.style.background = 'greenyellow';
addE.dispatchEvent(ev); // <-- кликаем! но не кликается
return {
r: regExp,
txt: textContent,
parent: e.closest('td'),
};
}
return textContent;
}
arrRows.forEach((e, i) => {
lightWords(e, i);
});