概要
某デ*スカバリーメソ*ド等の面倒なアンケートみたいなのを自動で回答するプログラムを作った
実行するとプロンプトに選択肢の数を入力するよう求められるから選択肢の数をタイプしてOKボタンを押すと選択肢をランダムで選んでくれる
なお、「選択肢の数」は質問の数ではない
このサイトで動作を試せる
使い方は「ブックマークレット 使い方」でググれば出てくるし、以下の動画を見れば分かると思う
ソースコード
HTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
(1)
<input type="radio" name="button" value="1">1
<input type="radio" name="button" value="2">2
<input type="radio" name="button" value="3">3
<input type="radio" name="button" value="4">4
</div>
<div>(2)
<input type="radio" name="button2" value="1">1
<input type="radio" name="button2" value="2">2
<input type="radio" name="button2" value="3">3
<input type="radio" name="button2" value="4">4
</div>
<div>(3)
<input type="radio" name="button3" value="1">1
<input type="radio" name="button3" value="2">2
<input type="radio" name="button3" value="3">3
<input type="radio" name="button3" value="4">4
</div>
<div>(4)
<input type="radio" name="button4" value="1">1
<input type="radio" name="button4" value="2">2
<input type="radio" name="button4" value="3">3
<input type="radio" name="button4" value="4">4
</div>
<div>(5)
<input type="radio" name="button5" value="1">1
<input type="radio" name="button5" value="2">2
<input type="radio" name="button5" value="3">3
<input type="radio" name="button5" value="4">4
</div>
</body>
</html>
JavaScript
内容はどれも同じ、コピペは自由にどうぞ
URL欄へのコピペ用 :
javascript:!function(){const e=window.prompt("選択肢の数を入力","4"),t=document.getElementsByTagName("div");for(let l=0;l<t.length;l++){button_array=t[l].getElementsByTagName("input");for(let n=0;n<button_array.length;n++)if(button_array[n].type&&"radio"===button_array[n].type){const o=Math.floor(Math.random()*e);button_array[o].checked=!0}}}();
インデント済み・解説コメント付き :
javascript:(function(){
const N = window.prompt("選択肢の数を入力", "4"); //選択肢の数を受け取る
const box_array = document.getElementsByTagName("div"); //document内の全てのdivタグを変数box_arrayに配列として格納
for(let i = 0; i < box_array.length; i++){ //各々のdivタグに対して、以下の処理を実行
const box = box_array[i]; //i個目のdivタグを変数boxに格納
button_array = box.getElementsByTagName("input"); //box内の全てのinputタグを変数box_arrayに配列として格納
for(let j = 0; j < button_array.length; j++){ //各々のinputタグに対して、以下の処理を実行
if(button_array[j].type && button_array[j].type === 'radio'){ //j番目のinputタグにtypeプロパティが存在し、そのプロパティが"radio"である場合、以下の処理を実行
const random_num = Math.floor(Math.random() * N); //0からNまでのランダムな整数を生成
const button = button_array[random_num]; //i個目のdiv内のinputタグのうち、どれか一つをランダムに選択し、変数buttonに格納
button.checked = true; //ランダムに選択されたinputタグのcheckedプロパティをtrueとする
}
}
}
})();
//コメント無し
javascript:(function(){
const N = window.prompt("選択肢の数を入力", "4");
const box_array = document.getElementsByTagName("div");
for(let i = 0; i < box_array.length; i++){
const box = box_array[i];
button_array = box.getElementsByTagName("input");
for(let j = 0; j < button_array.length; j++){
if(button_array[j].type && button_array[j].type === 'radio'){
const random_num = Math.floor(Math.random() * N);
const button = button_array[random_num];
button.checked = true;
}
}
}
})();