Причина, по которой он не работает, когда вы помещаете этот код в несколько мест в одном и том же HTML-файле, заключается в том, что когда у вас есть одна форма с именем randform
, она возвращает эту форму. Но так как у вас есть несколько форм с одним и тем же именем randform
. document.randform
теперь возвращает массив формы.
Это быстрое решение (возможно, не рекомендуемый способ).
...
<input
class="reload-but"
type="button"
value="↻ "
onClick="randomString(this);"
>
...
function randomString(input) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
// no longer rely on the form name.
input.parentElement.randomfield.value = randomstring;
}
потребуйте используется для загрузки расширений - таким образом, код выполнится, после того как, чтобы заставить расширения присутствовать в среде, но последующий требует, ничего не сделает, потому что задание было уже сделано.
загрузка, с другой стороны, загружает и выполняет код каждый раз.
Как уже упомянуто, если Вы просто хотите запустить свой скрипт и Вы нуждаетесь в среде направляющих, затем рассматриваете использование сценария/бегуна
Необходимо, вероятно, попробовать или загрузку среды направляющих в сценарии или использование граблей. Также рассмотрите использование сценария/бегуна.
Вот старое и возможно устаревший пример использования Вашей среды направляющих в сценарии. Более свежая и подробная версия здесь.