Для блокировки кнопки во время выполнения определенной функции можно использовать атрибут disabled, который делает кнопку неактивной. Например, при нажатии на кнопку можно вызвать функцию, которая блокирует кнопку, а затем выполнить нужные действия.
Пример:
```html
<button onclick="myFunction()">Click me</button>
<script>
function myFunction() {
document.querySelector('button').disabled = true;
// выполнение определенной функции
}
</script>
```
Чтобы исправить проблему с выполнением функции дважды, можно добавить проверку перед выполнением функции, чтобы удостовериться, что кнопка не заблокирована. Например, можно сделать проверку на наличие атрибута disabled у кнопки перед выполнением функции.
Пример:
```html
<button onclick="myFunction()">Click me</button>
<script>
function myFunction() {
if (!document.querySelector('button').disabled) {
document.querySelector('button').disabled = true;
// выполнение определенной функции
}
}
</script>
```
Таким образом, пользователь не сможет нажать на кнопку во время выполнения функции, и функция не будет запускаться дважды.