Я пытаюсь найти способ автоматически рандомизировать положения ползунка (тип ввода = «диапазон») при посещении веб-страниц, на которых они есть (в основном в формах веб-опросов, таких как Qualtrics или Surveymonkey).Я пытаюсь добиться этого через Tampermonkey в Google Chrome.Я хочу иметь возможность загружать страницу и иметь любые ползунки, чтобы автоматически установить случайную точку на ползунке.Затем я хочу добавить эту рандомизацию слайдера в уже существующий скрипт автозаполнения, который я покажу ниже.
Но сначала приведу пару примеров типа слайдеров, которые я хотел бы автоматизировать (с помощью CSS / HTML):

Как видите, здесь используется тип ввода = «диапазон», как показано в HTML / CSS на странице.

Здесьтип ввода скрыт, но моя теория заключается в том, что это диапазон просто потому, что это слайдер.Я хочу иметь возможность загружать страницу и автоматически устанавливать для этих ползунков случайную точку на ползунке.
Ниже приведен текущий скрипт, который я использовал для автозаполнения некоторых аспектов повторяющихся форм при загрузке страницы.Я хочу добавить рандомизацию ползунка к этому, и я попытался (и не смог) основать рандомизатор ползунка на основе этого кода:
// ==/UserScript==
(function() {
// Save a random number
var modifier = Math.floor(Math.random() * 9000000);
// Array to save data
var save_data = [];
// Check window for tags
function check(win, tagName) {
try {
// Get tags
tagName = win.document.getElementsByTagName(tagName)
} catch (e) {
// Not found - Empty array
tagName = []
}
// For each tag
for (i = 0; i < tagName.length; i++) {
// This tag
var tag = tagName[i];
// Exclude read-only or desabled
if (tag.readOnly || tag.disabled) continue;
// Get tag values
var name = tag.name;
var type = tag.type;
var value = tag.value;
// If Check box
if ('checkbox' == type){
tag.checked = Math.random() > .5;
}
// If radio
else if ('radio' == type) {
// If data don't exist
if (!save_data[name]) {
save_data[name] = 1;
}else{
save_data[name] ++;
}
// Check it with probabilities (depending on the length)
tag.checked = Math.random() < (1 / save_data[name]);
}
// If select
else if (type.match(/^select/)){
// Set a random options
tag.selectedIndex = Math.random() * (tag.options.length - 1) + 1;
}
}
// Try to set focus to the input
if (tag) try {
tag.focus()
} catch (e) {}
}
function recursive(win) {
check(win, 'select');
check(win, 'input');
// For each frame on page
for (var i = 0; i < win.frames.length; i++) {
// Check all frames inside
recursive(win.frames[i])
}
}
recursive(window);
}());
И, наконец, вот код, который я пытаюсь использоватьрандомизировать ползунки.Я основал его на переключателе рандомизатора приведенного выше кода:
else if ('range' == type) {
if (!save_data[name]) {
save_data[name] = 1;
}else{
save_data[name] ++;
}
tag.checked = Math.random() < (1 / save_data[name]);
}
К сожалению, это не работает и не может управлять ползунками.Я глупо предположил, что простое изменение типа на «диапазон» может сработать.Я думаю, что работа с input type = 'range' является ключевой, потому что это то, что большинство слайдеров, похоже, постоянно разделяют на разных веб-страницах.
На данный момент я пытаюсь найти пути продвижения вперед,но я не уверен, что еще нужно изменить, кроме типа.Любой совет был бы великолепен.Заранее спасибо.